Wie überprüfe ich, ob Bluetooth programmgesteuert aktiviert ist?


73

Ich möchte regelmäßig überprüfen, ob Bluetooth auf einem Android-Gerät aktiviert ist. Gibt es irgendwelche Absichten, die ich mit BroadcastReceiver erfassen könnte, oder gibt es andere Möglichkeiten, dies zu tun?


Schauen Sie sich einfach diesen Link für Bluetooth an und befolgen Sie alle Schritte. Ich hoffe diese Hilfe.
Uttam

Antworten:


178

Los geht's:

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

Mit uses-permission

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

Danke für die kurze und schnelle Antwort!
Zerhinne

8
Wenn für diese Erkennung nur eine Bluetooth-Berechtigung erforderlich ist, vergessen Sie nicht, diese NICHT erforderlich festzulegen: <Verwendungsfunktion android: name = "android.hardware.bluetooth" android: required = "false" />
Murphy

Ist Internet erforderlich, um Bluetooth zu überprüfen?
Portfoliobuilder

5
Nein, Sie brauchen kein Internet, um den Bluetooth-Status zu überprüfen.
Nun

7
public boolean isBluetoothEnabled()
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        return mBluetoothAdapter.isEnabled();

    }

mit der Erlaubnis in der Manifestdatei:

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

7

Hier habe ich eine andere Alternative als Antwort auf diese Frage.

Fügen Sie zuerst die folgenden Zeilen in Ihre Manifest-Datei ein.

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

Wenn Sie nun die Bluetooth-Unterstützung überprüfen möchten, verwenden Sie den folgenden Code.

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

Wie ist es anders mit "BluetoothAdapter.getDefaultAdapter ()"?
CoDe

1
Ich denke android: erfordern sollte falsch sein. Weil es nur bei denen funktioniert, die Bluetooth unterstützen.
Xar-e-ahmer Khan

1
Dieser Tippfehler ließ mich weinen. Ich muss es reparieren.
rekire

5

So überprüfen Sie den Bluetooth-Status programmgesteuert: EIN oder AUS:

    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
       }

Sie können auch die Absichtsaktion anhören:

BluetoothAdapter.ACTION_STATE_CHANGED


2

Verwendung kann verwenden

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

zur Überprüfung bt verbunden

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

zur Überprüfung bt getrennt

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

Bei der Frage geht es nicht darum zu überprüfen, ob das Headset angeschlossen ist oder nicht, aber ich schaue genau das, also +1 und danke :)
Alexandr

1

So habe ich es mit Hilfe von @ xjaphx 'Antwort gemacht, leicht vereinfachte Version:

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

 <uses-permission android:name="android.permission.BLUETOOTH" />
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.