我希望能够在特定蓝牙设备连接时启动服务,并在其断开连接时停止此服务。显然,我不想一直拥有后台服务来检查BT设备是否已连接,因此我想通过接收器实现这一点。
这是否实际可行?在这里提到了android.bluetooth.device.action.ACL_CONNECTED,但显然它没有起作用。
谢谢!
这是否实际可行?在这里提到了android.bluetooth.device.action.ACL_CONNECTED,但显然它没有起作用。
谢谢!
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
</intent-filter>
这些是您需要在广播接收器中添加的过滤器。
ACL_CONNECTED
表示蓝牙已连接,而 ACL_DISCONNECTED
表示蓝牙断开连接。
对于特定设备,您需要检查广播接收器中的意图/上下文。
您需要添加的两个权限是:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
我认为这应该解决了你的问题。