2013-12-09 65 views
1

我使用方法bluetoothAdapter.getBondDevices()獲取所有配對設備的列表。 無論如何檢查有多少設備實際在線即準備好接收數據?如何知道藍牙設備是否與其地址在線?

+0

通過說「準備好接收數據」你的意思是它具有藍牙設備函數在那個時候打開? – insomniac

+0

是的,我只是說。 – Kiran

回答

-1

我在做什麼我的應用程序是創建廣播接收器,並實現的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()

相關問題