Android で検出可能な Bluetooth デバイスのリストを取得しようとしています。デバイスを取得し、ArrayAdapter を使用して、デバイスの ListView を作成できます。私の質問は、この情報を別の機能に使用できるように、それらをリストに保存するにはどうすればよいですか? Android開発者サイトを見てみましたが、ListViewのチュートリアルしかありません。他のチュートリアルや説明も探しましたが、間違った情報が得られているようです。
私のコードは次のとおりです。
protected List<String> doInBackground(Void... arg0) {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.startDiscovery();
// Create a BroadcastReceiver for ACTION_FOUND
final List<String> discoverableDevicesList = new ArrayList<String>();
final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// When discovery finds a device
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
// Add the name and address to an array adapter to show in a ListView
System.out.println(device.getName());
discoverableDevicesList.add(device.getName() + "\n" + device.getAddress() + "\n" + rssi);
}
}
};
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
context.registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy
return discoverableDevicesList;
}
おそらくBluetoothデバイスのスキャンに関連する発見時間と関係がありますが、それぞれが発見されたので、リストに追加するだけでよいと思いましたか? 誰かが似たようなものに出くわしたり、解決策を考えたりしましたか? とても有難い!