2015-10-28 2 views
13

Я могу видеть два состояния в устройстве Bluetooth в Android. 1. Пара 2. Подключена. -
Я пытаюсь получить подключенное в настоящее время устройство Bluetooth в Android. Но я получаю только парный список устройств от adapter.getBondedDevices(); Мне нужно подключенное в настоящее время устройство. Как я могу это получить. Пожалуйста, помогите мне в этом. Заранее спасибо.В настоящее время подключено устройство Bluetooth android

+0

'<использующую-разрешение андроида: имя = "android.permission.BLUETOOTH"/>< использует-разрешение андроида: Name =" андроида .permission.BLUETOOTH_ADMIN "/>' используйте это разрешение, также проверьте эту ссылку на http://stackoverflow.com/questions/14834318/android-how-to-pair-bluetooth-devices-programmatically – Android

+0

Вопрос не совсем ясен для меня , Что именно вы делаете? Вы создаете Connected btlDevice при выполнении btlDevice.CreateRfcommSocketToServiceRecord (MY_UUID); В качестве альтернативы система использует последний подключенный btlDevice. Пожалуйста, более подробно, что вы делаете. – Majkl

+0

Проверьте это https://stackoverflow.com/questions/26341718/connection-to-specific-hid-profile-bluetooth-device –

ответ

3

Добавить это в файле манифеста

<receiver android:name=".MyBluetoothReceiver" > 
<intent-filter> 
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> 
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" 
/> 
<action 
android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" 
/>   
</intent-filter> 
</receiver> 

Добавить класс

public class MyBluetoothReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    String action = intent.getAction(); 

    // When discovery finds a device 
    if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { 

    BluetoothDevice device = intent 
       .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 

    Toast.makeText(getApplicationContext(),device.getName() +" CONNECTED",Toast.LENGTH_LONG).show(); 

    } else if (BluetoothAdapter.ACL_DISCONNECTED 
      .equals(action)) { 

    } 
} 
} 
+0

Это даст уведомление только при подключении устройства. Как насчет устройства уже подключено, а затем вы запускаете свое приложение? Как получить подключенные устройства? – usman

6

Это довольно прямо вперед. Android BluetoothManager есть метод

getConnectedDevices()

Реализация как:

BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE); 
    List<BluetoothDevice> connected = manager.getConnectedDevices(GATT); 
    Log.i("Connected Devices: ", connected.size()+""); 

Если вы хотите более подробную информацию о подключенных устройствах, то вы можете использовать вышеупомянутый метод списка положить его в течение и получить внутренние данные каждого подключенного устройства Bluetooth.

Журналы:

12-20 18:04:09.679 14933-14933/com.salman.dleague.blescanning I/Connected Devices:: 2 

Надежда его полезный :)

Смежные вопросы