【发布时间】:2011-03-07 10:33:26
【问题描述】:
我有一个在服务中实例化的包装类 (BluetoothDiscoverer)。该类获取一个蓝牙适配器,并在扫描邻近设备之前检查蓝牙是否启用。
现在,如果未启用蓝牙,我希望能够在此类 (BluetoothDiscoverer) 中执行以下操作:
Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetoothIntent, BLUETOOTH_ENABLER);
现在我读到了:use startActivityForResult from non-activity
但我不想将我的 Main Activity 传递给这个对象,因为我想处理结果(用户是否接受启用蓝牙) 在 BluetoothDiscoverer 类中。
现在如果我让 BluetoothDiscoverer 成为 Activity 的子类
当 startActivityForResult 即将被调用时,我似乎得到了 NullPointerException。
我认为这是因为我需要添加一个 onCreate()/onDestroy() 方法, 但这违背了我正在做的事情的目的,因为我需要能够在实例化此类的服务中调用 BluetoothDiscoverer 对象上的方法。
我还需要注册一个广播接收器,以便在启动扫描时检索相邻设备。如果 BluetoothDiscoverer 类不是 Activity,我该如何注册这个接收器?
有解决办法吗?
谢谢 安德烈亚斯
【问题讨论】:
标签: android service android-activity bluetooth