kku*_*udi 7 service android bluetooth android-activity
我有一个包装类(BluetoothDiscoverer),它在服务中实例化.此类获取BluetoothAdapter并在扫描相邻设备之前检查是否启用了蓝牙.
现在,如果未启用蓝牙,我希望能够在此类(BluetoothDiscoverer)中执行以下操作:
Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetoothIntent, BLUETOOTH_ENABLER);
Run Code Online (Sandbox Code Playgroud)
现在我已经读过这个:从非活动中使用startActivityForResult
但是我不想将我的主要活动传递给这个对象,因为我想在BluetoothDiscoverer类中处理结果(用户是否接受启用蓝牙).
现在如果我使BluetoothDiscoverer成为Activity的子类
当startActivityForResult即将被调用时,我似乎得到了一个NullPointerException.
我认为这是因为我需要添加一个onCreate()/ onDestroy()方法,但这违背了我正在做的目的,因为我需要能够在实例化该类的服务中调用BluetoothDiscoverer对象上的方法.
我还需要注册广播接收器,以便在启动扫描时检索相邻设备.如果BluetoothDiscoverer类不是Activity,我该如何注册此接收器?
有没有解决这个问题?
谢谢安德烈亚斯
startActivityForResult()仅适用于真实的屏幕活动.请重新设计您的应用程序,以便从活动中驱动用户界面,然后让您的服务扫描设备.
我还需要注册广播接收器,以便在启动扫描时检索相邻设备.如果BluetoothDiscoverer类不是Activity,我该如何注册此接收器?
你摆脱BluetoothDiscoverer并将其逻辑移入Service,这是一个Context因此可以注册接收器.
| 归档时间: |
|
| 查看次数: |
9896 次 |
| 最近记录: |