2013-12-09 4 views
1

Я получаю список всех сопряженных устройств, используя метод bluetoothAdapter.getBondDevices(). Есть ли все-таки, чтобы проверить, сколько устройств действительно в сети, то есть готово для приема данных?Как узнать, подключено ли устройство Bluetooth с его адресом?

+0

Говоря «готов к приему данных» вы имеете в виду устройства, которые имеют Bluetooth функция включена в это время? – insomniac

+0

Да, я имел в виду только это. – Kiran

ответ

-1

Что я делаю в моем приложении, чтобы создать BroadcastReceiver, а также осуществлять 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()

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