Bluetooth デバイスが iPhone に接続されたり切断されたりするタイミングを観察しようとしています。基本的に、対象の特定のデバイスが接続されたときに反応する必要があります (必ずしもフォアグラウンドである必要はありません)。ACL_CONNECTED
Android では、およびACL_DISCONNECTED
アクションを受け取ることができます。
iOS でのこの動作に相当するものは何ですか?
CoreBluetooth
Bluetooth LE 用であることを発見する前に最初に を調べ、次に を調べましたが、ピッカーExternalAccessory
に MFI デバイスしか表示されず、ユーザーがピッカーを通過する必要があるようです。私たちが見つけた唯一の有効な方法は、Apple自体を経由することです。これは、セクション 2.5 のAppStore ガイドラインに従って禁止されています。おそらく、Apple エコシステムを完全に制御できるようにするためです。BluetoothManager
同等の 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>