1
我使用方法bluetoothAdapter.getBondDevices()
獲取所有配對設備的列表。 無論如何檢查有多少設備實際在線即準備好接收數據?如何知道藍牙設備是否與其地址在線?
我使用方法bluetoothAdapter.getBondDevices()
獲取所有配對設備的列表。 無論如何檢查有多少設備實際在線即準備好接收數據?如何知道藍牙設備是否與其地址在線?
我在做什麼我的應用程序是創建廣播接收器,並實現的onReceive(),在那裏我檢查BluetoothDevice.ACTION_FOUND並添加發現的設備的列表:
//holds names of BT devices discovered
private ArrayList<String> btDevices = new ArrayList<String>();
在的onCreate( ),創建接收機:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getName() != null) {
btDevices.add(device.getName());
}
else {
Log.d("MyTag", "device.getName() is null");
}
}
}
};
然後,創建意圖過濾器和寄存器接收機:
IntentFilter btFilter = new IntentFilter();
btFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
btFilter.addAction(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, btFilter);
獲取bluetoothAdapter,並開始發現:
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
//we have adapter
if (bluetoothAdapter != null) {
//Bluetooth is OFF, so turn it on
if (!bluetoothAdapter.isEnabled()) {
bluetoothAdapter.enable();
}
else {
bluetoothAdapter.startDiscovery();
}
}
然後,我可以檢查有多少設備已經發現了btDevices.size()
通過說「準備好接收數據」你的意思是它具有藍牙設備函數在那個時候打開? – insomniac
是的,我只是說。 – Kiran