Как проверить, включен ли bluetooth программно?

Я хотел бы проверить, включен ли Bluetooth на любом устройстве Android. Есть ли какие-либо намерения, которые я мог бы поймать, используя BroadcastReceiver, чтобы сделать это, или есть другие способы сделать это?

Solutions Collecting From Web of "Как проверить, включен ли bluetooth программно?"

Там вы идете:

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

С uses-permission

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

Здесь у меня есть другая альтернатива в качестве ответа на этот вопрос.

Сначала добавьте следующие строки в ваш файл манифеста.

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

Теперь, когда вы хотите проверить поддержку Bluetooth, используйте следующий код.

 boolean isBluetoothSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); 
 public boolean isBluetoothEnabled() { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); return mBluetoothAdapter.isEnabled(); } 

С разрешением в файле манифеста:

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

Использование может использовать

 BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

Для проверки bt подключен

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

Для проверки bt отключен

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

Чтобы проверить состояние Bluetooth, ВКЛ или ВЫКЛ, программно:

  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 } 

Вы также можете прослушать действие Intent:

BluetoothAdapter.ACTION_STATE_CHANGED

Так я сделал это с помощью ответа @ xjaphx, слегка упрощенной версии:

  private boolean getBlueToothOn(){ BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); return btAdapter != null && btAdapter.isEnabled(); } <uses-permission android:name="android.permission.BLUETOOTH" />