2011-10-06 18 views
50

Me gustaría comprobar si bluetooth está habilitado en cualquier dispositivo Android periódicamente. ¿Hay alguna intención que pueda atrapar usando BroadcastReceiver para hacerlo, o hay otras formas de hacerlo?¿Cómo comprobar si bluetooth está habilitado programáticamente?

+0

Sólo echa un vistazo a este [link] (http://developer.android.com/guide/topics/wireless/bluetooth.html#SettingUp) para Bluetooth y seguir todas las paso. Espero esta ayuda. – Uttam

Respuesta

124

ahí lo tienes:

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
if (mBluetoothAdapter == null) { 
    // Device does not support Bluetooth 
} else { 
    if (!mBluetoothAdapter.isEnabled()) { 
     // Bluetooth is not enable :) 
    } 
} 

Con uses-permission

<uses-permission android:name="android.permission.BLUETOOTH" android:required="false" /> 
+0

¡Gracias por la respuesta breve y rápida! – androidnoob

+7

Si el permiso bluetooth solo es necesario para esta detección, no olvides establecerlo NO es necesario: Murphy

+0

manera óptima http: //stackoverflow.com/a/21010026/2624806 :) – CoDe

6

Aquí tengo otra alternativa como una respuesta para esta pregunta.

Primero agregue las siguientes líneas en su archivo de Manifiesto.

<uses-feature android:name="android.hardware.BLUETOOTH" android:required="false"/> 

Ahora, donde quiera comprobar la compatibilidad con Bluetooth, use el siguiente código.

boolean isBluetoothSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); 
+0

¿cómo es diferente con "BluetoothAdapter.getDefaultAdapter()"? – CoDe

+1

Creo que Android: requiere que sea falso. Porque solo funcionará en aquellos que soportan bluetooth. –

+1

Ese error me dejó llorar. Debo arreglarlo. – rekire

2

uso puede utilizar

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

para el check bt conectada

mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED 

para el check bt desconectado

mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_DISCONNECTED 
+0

La pregunta no se trata de verificar si los auriculares están conectados o no, pero estoy buscando exactamente esto, así que +1 y gracias :) – Alexandr

2

Para comprobar el estado Bluetooth, ON u OFF, mediante programación:

BluetoothAdapter btAdapter = ((Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR1) 
      ?((BluetoothManager)mContext.getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter() 
       :(BluetoothAdapter.getDefaultAdapter())); 

     if(btAdapter==null){ 
     return; 
     } 
     if(btAdapter.getState()==BluetoothAdapter.STATE_ON){ 
      //Bluetooth is ON 
     } 

También puede escuchar a la acción Intención:

BluetoothAdapter.ACTION_STATE_CHANGED

1

Ésta es la forma en que lo hice con la ayuda de la respuesta de @ xjaphx, versión ligeramente simplificada:

private boolean getBlueToothOn(){ 
    BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); 
     return btAdapter != null && btAdapter.isEnabled(); 
    } 

<uses-permission android:name="android.permission.BLUETOOTH" /> 
4
public boolean isBluetoothEnabled() 
    { 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     return mBluetoothAdapter.isEnabled(); 

    } 

con el permiso de archivo de manifiesto:

<uses-permission android:name="android.permission.BLUETOOTH" /> 
Cuestiones relacionadas