So aktivieren / deaktivieren Sie Bluetooth programmgesteuert in Android

Lesezeit: 6 Minuten

So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Benutzer458295

Ich möchte Bluetooth über das Programm aktivieren/deaktivieren. Ich habe folgenden Code.

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

Aber dieser Code funktioniert nicht in SDK 1.5. Wie kann ich es zum Laufen bringen?

  • Wie funktioniert es nicht? Bekommst du eine Fehlermeldung? Wenn ja, was ist der Fehler?

    – Adam Driscoll

    27. September 2010 um 18:12 Uhr

  • BluetoothAdapter zeigt Fehler in SDK 1.5

    – Benutzer458295

    27. September 2010 um 18:34 Uhr

So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Prijin Koshy Alex

dieser Code hat bei mir funktioniert..

//Disable bluetooth
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (mBluetoothAdapter.isEnabled()) {
    mBluetoothAdapter.disable(); 
} 

Damit dies funktioniert, müssen Sie über die folgenden Berechtigungen verfügen:

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

  • bei mir funktioniert es auch wirklich. Einfache Methode zum Trennen von Bluetooth in Android-Geräten. vielen dank kumpel.

    – Amit Thaper

    14. Juni 2011 um 6:39 Uhr

  • Wenn Sie die BLUETOOTH_ADMIN-Berechtigung hinzufügen, funktioniert es, aber wenn nicht, müssen Sie startActivityForResult (enableBtIntent, 0) verwenden. um Ihr Bluetooth zu aktivieren

    – Majid Golshadi

    11. Januar 2014 um 14:17 Uhr

  • Vielen Dank für Ihre nützliche Antwort +1. Ich möchte nur hinzufügen, wer nicht weiß, wie man es aktiviert: mBluetoothAdapter.enable ()

    – Chris Sim

    21. April 2015 um 13:45 Uhr

1646316189 788 So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Caner

Hier ist ein etwas robusterer Weg, dies auch mit den Rückgabewerten von zu tun enable()\disable() Methoden:

public static boolean setBluetooth(boolean enable) {
    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    boolean isEnabled = bluetoothAdapter.isEnabled();
    if (enable && !isEnabled) {
        return bluetoothAdapter.enable(); 
    }
    else if(!enable && isEnabled) {
        return bluetoothAdapter.disable();
    }
    // No need to change bluetooth state
    return true;
}

Und fügen Sie Ihrer Manifestdatei die folgenden Berechtigungen hinzu:

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

Aber denken Sie an diese wichtigen Punkte:

Dies ist ein asynchroner Aufruf: Er wird sofort zurückgegeben, und Clients sollten auf ACTION_STATE_CHANGED warten, um über nachfolgende Änderungen des Adapterstatus benachrichtigt zu werden. Wenn dieser Aufruf wahr zurückgibt, wechselt der Adapterstatus sofort von STATE_OFF zu STATE_TURNING_ON und einige Zeit später entweder zu STATE_OFF oder STATE_ON. Wenn dieser Aufruf „false“ zurückgibt, ist ein unmittelbares Problem aufgetreten, das das Einschalten des Adapters verhindert – z. B. Flugzeugmodus, oder der Adapter ist bereits eingeschaltet.

AKTUALISIEREN:

Ok, wie implementiert man den Bluetooth-Listener?:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
            final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                                                 BluetoothAdapter.ERROR);
            switch (state) {
            case BluetoothAdapter.STATE_OFF:
                // Bluetooth has been turned off;
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                // Bluetooth is turning off;
                break;
            case BluetoothAdapter.STATE_ON:
                // Bluetooth is on
                break;
            case BluetoothAdapter.STATE_TURNING_ON:
                // Bluetooth is turning on
                break;
            }
        }
    }
};

Und wie registriert/abmeldet man den Empfänger? (In deiner Activity Klasse)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // ...

    // Register for broadcasts on BluetoothAdapter state change
    IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
    registerReceiver(mReceiver, filter);
}

@Override
public void onStop() {
    super.onStop();

     // ...

    // Unregister broadcast listeners
    unregisterReceiver(mReceiver);
}

  • wenn du hinzufügst BLUETOOTH_ADMIN Erlaubnis, es ist Arbeit, aber wenn nicht, müssen Sie sie verwenden startActivityForResult(enableBtIntent, 0); um Ihr Bluetooth zu aktivieren

    – Majid Golshadi

    11. Januar 2014 um 14:16 Uhr

  • Die hervorgehobenen Informationen stammen aus der BluetoothAdapter-Dokumentation, speziell für die Methode enable().

    – Kevin Lee

    17. Dezember 2015 um 16:09 Uhr

  • hey, das sagen die docs Bluetooth should never be enabled without direct user consent. If you want to turn on Bluetooth in order to create a wireless connection, you should use the ACTION_REQUEST_ENABLE Intent, which will raise a dialog that requests user permission to turn on Bluetooth. The enable() method is provided only for applications that include a user interface for changing system settings, such as a "power manager" app. Was heißt das? Zum Bsp. Ich habe aus deinem Code eine kleine App gemacht und es hat funktioniert. Aber wenn ich in den Play Store hochladen möchte, funktioniert es nicht?

    – Hilal

    8. Juni 2019 um 2:10 Uhr

  • @Hilal, es wird funktionieren. Benutzer müssen jedoch vor der Installation zustimmen. Sie sehen einen Dialog wie diesen: pewinternet.org/2015/11/10/…

    – Kaner

    10. Juni 2019 um 11:58 Uhr

1646316189 452 So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Jakob Schek

Android BluetoothAdapter docs sagen, dass es seit API Level 5 verfügbar ist. API-Level 5 ist Android 2.0.

Sie können versuchen, einen Backport der Bluetooth-API zu verwenden (habe es nicht persönlich versucht): http://code.google.com/p/backport-android-bluetooth/

1646316190 347 So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Ahmed Alnabhan

Um Bluetooth zu aktivieren, können Sie eine der folgenden Funktionen verwenden:

 public void enableBT(){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (!mBluetoothAdapter.isEnabled()){
        Intent intentBtEnabled = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
        // The REQUEST_ENABLE_BT constant passed to startActivityForResult() is a locally defined integer (which must be greater than 0), that the system passes back to you in your onActivityResult() 
        // implementation as the requestCode parameter. 
        int REQUEST_ENABLE_BT = 1;
        startActivityForResult(intentBtEnabled, REQUEST_ENABLE_BT);
        }
  }

Die zweite Funktion ist:

public void enableBT(){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (!mBluetoothAdapter.isEnabled()){
        mBluetoothAdapter.enable();
    }
}

Der Unterschied besteht darin, dass die erste Funktion die App dazu bringt, den Benutzer um eine Erlaubnis zu bitten, das Bluetooth einzuschalten oder zu verweigern. Die zweite Funktion lässt die App das Bluetooth direkt einschalten.

Verwenden Sie zum Deaktivieren von Bluetooth die folgende Funktion:

public void disableBT(){
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter.isEnabled()){
        mBluetoothAdapter.disable();
    }
}

HINWEIS/ Die erste Funktion benötigt nur die folgende Berechtigung, um in der Datei AndroidManifest.xml definiert zu werden:

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

Während die zweite und dritte Funktion die folgenden Berechtigungen benötigen:

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

1646316191 912 So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Peter Osburg

Die Lösung von Prijin hat bei mir perfekt funktioniert. Es ist nur fair zu erwähnen, dass zwei zusätzliche Berechtigungen benötigt werden:

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

Wenn diese hinzugefügt werden, funktioniert das Aktivieren und Deaktivieren mit dem Standard-Bluetooth-Adapter einwandfrei.

So aktivieren deaktivieren Sie Bluetooth programmgesteuert in Android
Nik

Ich habe den folgenden Code verwendet, um BT zu deaktivieren, wenn meine App startet und gut funktioniert. Ich bin mir nicht sicher, ob dies der richtige Weg ist, dies zu implementieren, da Google empfiehlt, “bluetooth.disable();” nicht zu verwenden. ohne explizite Benutzeraktion zum Deaktivieren von Bluetooth.

    BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
    bluetooth.disable();

Ich habe nur die unten stehende Berechtigung verwendet.

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

Aktualisiert für Android 12:

AndroidManifest.xml –

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

Sie müssen die Standard-Berechtigungsanfrage für ausführen BLUETOOTH_CONNECT wie Sie es tun würden, wenn Sie die Erlaubnis für die Speicherung oder andere “aufgeforderte” Elemente anfordern würden.

Verwendung (Kotlin) –

val bluetoothAdapter = (getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager).adapter
if (bluetoothAdapter.isEnabled)
    bluetoothAdapter.disable()

Für Android 12 und höher, BLUETOOTH und BLUETOOTH_ADMIN Berechtigungen sind nicht erforderlich, um den aktuellen Status abzurufen oder umzuschalten, es sei denn, es wird auf niedrigere APIs abgezielt.

924120cookie-checkSo aktivieren / deaktivieren Sie Bluetooth programmgesteuert in Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy