藍牙如果手動配對並已連接,獲取連接的設備:
1.檢測連接狀態:
- int a2dp = bluetoothAdapter.getProfileConnectionState(BluetoothProfile.A2DP);
- int headset = bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET);
- int health = bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEALTH);
2,根據是否有連接獲取已連接的設備:
- int flag = -1;
- if (a2dp == BluetoothProfile.STATE_CONNECTED) {
- flag = a2dp;
- } else if (headset == BluetoothProfile.STATE_CONNECTED) {
- flag = headset;
- } else if (health == BluetoothProfile.STATE_CONNECTED) {
- flag = health;
- }
- if (flag != -1) {
- bluetoothAdapter.getProfileProxy(MainActivity.this, new ServiceListener() {
- @Override
- public void onServiceDisconnected(int profile) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onServiceConnected(int profile, BluetoothProfile proxy) {
- // TODO Auto-generated method stub
- List<BluetoothDevice> mDevices = proxy.getConnectedDevices();
- if (mDevices != null && mDevices.size() > 0) {
- for (BluetoothDevice device : mDevices) {
- Log.i("W", "device name: " + device.getName());
- }
- } else {
- Log.i("W", "mDevices is null");
- }
- }
- }, flag);
- }