1. デバイスの検索/検出
Android の場(chǎng)合、Bluetooth デバイスを検索するには、BluetoothAdapter クラスの startDiscovery() メソッドを使用して、周囲の Bluetooth デバイスを取得する非同期メソッドを?qū)g行します。ブロックされているスレッドを考慮する必要はありません。プロセス全體にかかる時(shí)間は約 12 秒です。このとき、見つかった Bluetooth デバイス情報(bào)を受信するために BroadcastReceiver オブジェクトを登録します。ACTION_FOUND Intent アクションをフィルタリングして、各デバイスの詳細(xì)情報(bào)を取得します。リモート デバイス。各 BluetoothDevice オブジェクトとオブジェクトのデバイス タイプ BluetoothClass は、追加パラメータ、サンプル コードを通じて、インテント フィールド EXTRA_DEVICE および EXTRA_CLASS に含まれます。
private Final BroadcastReceiver cwjReceiver = new BroadcastReceiver() {
public void onReceive (コンテキスト context, インテント インテント) {
文字列アクション =tent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device =tent.getParcelableExtra(BluetoothDevice. EXTRA_DEVICE) ;
myArrayAdapter.add(device.getName() + " android123 " + device.getAddress()); // デバイス名と MAC アドレスを取得します
// この BroadcastReceiver を登録します
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(cwjReceiver, filter);
最後に、android123 は、onDestory() メソッドをオーバーライドすることを忘れないでください。 Service または Activity で unregisterReceiver メソッドを使用して BroadcastReceiver オブジェクトの登録を解除し、リソースが正しくリサイクルされるようにします。
その他のステータス変更には、ACTION_SCAN_MODE_CHANGED 追加パラメータ、EXTRA_SCAN_MODE および EXTRA_PREVIOUS_SCAN_MODE および SCAN_MODE_CONNECTABLE_DISCOVERABLE、SCAN_MODE_CONNECTABLE および SCAN_MODE_NONE、Bluetooth モジュールなどがあります。