我们正在尝试观察蓝牙设备何时与 iPhone 连接和断开连接。当某些感兴趣的设备连接时,我们本质上想要做出反应(不一定在前台)。在 Android 中,您可以接收ACL_CONNECTED
和ACL_DISCONNECTED
操作。
在 iOS 上与此行为等效的是什么?
在发现它是用于蓝牙 LE 之前,我首先查看了CoreBluetooth
它,然后查看了ExternalAccessory
,但它仅在选择器中显示 MFI 设备,并且似乎需要用户通过选择器。我们发现唯一可行的方法是通过 AppleBluetoothManager
自己,根据第 2.5 节中的AppStore 指南,这是禁止的,大概是为了让他们可以完全控制 Apple 生态系统。
等效的Android代码:
MyReceiver.java
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BluetoothDevice.ACL_CONNECTED)) {
//do stuff
} else if (intent.getAction().equals(BluetoothDevice.ACL_DISCONNECTED)) {
//do stuff
}
}
}
AndroidManifext.xml
<receiver
android:name="com.myapp.MyReceiver"
android:exported="true"
android:enabled="true"
android:label="MyReceiver">
<intent-filters>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
</intent-filters>
</receiver>