我有一个理论上可以在没有与之关联的Activity的情况下工作的服务(因为"服务"是在Android平台上).
此服务使用蓝牙,特别是注册具有侦听通信的给定名称的蓝牙服务.当然要工作,它必须激活蓝牙.
正如蓝牙api文档中所示,我正在使用它BluetoothAdapter.ACTION_REQUEST_ENABLE来提示用户启用蓝牙,以防它已经打开.但是,这是一项活动,因此需要从另一项活动中调用,即:
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
InstanceOfAnActivity.startActivity(enableIntent);
Run Code Online (Sandbox Code Playgroud)
我想实现的是有服务(其中,例如,在开机启动时),从任何活动完全解耦,因此不会有InstanceOfAnActivity启动弹出指导用户打开蓝牙.
现在,我知道有(臭名昭着的)调用BluetoothAdapter.enable(),但正如文档所说,它不应该被直接调用.
那么,任何针对这种困境的提示/解决方案?(也许这很简单,我只是遗漏了一些......)
这是我用来生成DH密钥对的代码:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
keyGen.initialize(1024, new SecureRandom());
KeyPair ackp = keyGen.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)
(当然没有必要的尝试/捕获).
我已经做了一些测试,迭代地运行这些代码并改变密钥大小(特别是从128步增加到128步到1024. 1024将是所需的大小.
首先,运行每个大小生成10次以使结果具有一些最小的std偏差会导致结果的高波动,平均而言,创建密钥(1024位)所需的时间是:683027ms,其向上舍入到周围创建密钥需要11分钟.
问题是:
测试已在Nexus-One手机上进行
提前感谢您对"问题"有所了解
问候