2010-09-27 6 views
82

HALLO alle,Wie/Bluetooth deaktivieren, damit programmatisch in android

Ich möchte/deaktivieren Bluetooth ermöglichen, durch die program..I den folgenden Code hat.

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

Aber diese Art von Code funktioniert nicht in SDK 1.5..How kann ich das gleiche tun in SDK 1.5.?

+0

Wie ist es nicht funktioniert? Erhalten Sie einen Fehler? Wenn ja, was ist der Fehler? –

+0

BluetoothAdapter zeigt Fehler in SDK 1.5 – user458295

Antwort

126

dieser Code für mich gearbeitet ..

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

Damit dies funktioniert, müssen Sie haben die Folgende Berechtigungen:

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

es funktioniert wirklich auch für mich. einfache Methode, um das Bluetooth in Android-Geräten zu trennen. Vielen Dank Kumpel. –

+6

Wenn Sie die BLUETOOTH_ADMIN-Berechtigung hinzufügen, funktioniert es, aber wenn nicht, müssen Sie startActivityForResult (enableBtIntent, 0); Aktivieren Sie Ihr Bluetooth –

+0

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

5

Die Lösung von Prijin arbeitete perfekt für mich. 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 wird, ermöglicht und funktioniert tadellos mit dem Standard-Bluetooth-Adapter zu deaktivieren.

66

Hier ist etwas robustere Art und Weise, dies zu tun, auch die Rückgabewerte von enable()\disable() Methoden Handhabung:

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 die folgenden Berechtigungen in Ihrer Manifest-Datei:

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

Aber denken Sie daran Diese wichtigen Punkte:

Dies ist ein asynchroner Aufruf: Es wird sofort zurück, und Clients sollten auf ACTION_STATE_CHANGED warten, um über nachfolgende Änderungen des Adapterstatus von benachrichtigt zu werden. Wenn dieser Aufruf den Wert true zurückgibt, wechselt der Adapterstatus sofort von STATE_OFF zu STATE_TURNING_ON, und einige Zeit später zu STATE_OFF oder STATE_ON. Wenn dieser Aufruf false zurückgibt, gab es ein sofortiges Problem, verhindert, dass der Adapter eingeschaltet wird - wie Flugzeugmodus, oder der Adapter ist bereits eingeschaltet.

UPDATE:

Ok, so wie Bluetooth Hörer implementieren ?:

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 has been on 
       break; 
      case BluetoothAdapter.STATE_TURNING_ON: 
       // Bluetooth is turning on 
       break; 
      } 
     } 
    } 
}; 

Und wie um den Empfänger registrieren/deregistrieren?(In Ihrer 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); 
} 
+1

Wenn Sie die Berechtigung 'BLUETOOTH_ADMIN' hinzufügen, funktioniert es, aber wenn nicht, müssen Sie' startActivityForResult (enableBtIntent, 0); 'verwenden, um Ihr Bluetooth –

+1

zu aktivieren. Die hervorgehobene Information wird aus der BluetoothAdapter-Dokumentation speziell für die enable() -Methode zitiert . –

18

Um die Bluetooth zu Aktivieren Sie eine der folgenden Funktionen verwenden:

public void enableBT(View view){ 
    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(View view){ 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    if (!mBluetoothAdapter.isEnabled()){ 
     mBluetoothAdapter.enable(); 
    } 
} 

Der Unterschied ist, dass die Erste Funktion veranlasst die App den Benutzer um Erlaubnis zu bitten, das Bluetooth einzuschalten oder zu verweigern. Mit der zweiten Funktion schaltet die App Bluetooth direkt ein.

So deaktivieren Sie die Bluetooth die folgende Funktion verwenden:

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

NOTE/Die erste Funktion muss nur die folgende Berechtigung in der AndroidManifest.xml Datei definiert werden:

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

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

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

Ich habe den folgenden Code verwendet, um BT zu deaktivieren, wenn meine App gestartet wird und einwandfrei funktioniert. Nicht sicher, ob dies der richtige Weg ist, dies zu implementieren, da Google empfiehlt, "bluetooth.disable();" ohne explizite Benutzeraktion, um Bluetooth zu deaktivieren.

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

Ich habe nur die folgende Erlaubnis verwendet.

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

Fügen Sie die folgenden Berechtigungen in Ihrer Manifest-Datei:

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

Bluetooth verwenden Aktivieren Sie diese

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (!mBluetoothAdapter.isEnabled()) { 
    mBluetoothAdapter.enable(); 
}else{Toast.makeText(getApplicationContext(), "Bluetooth Al-Ready Enable", Toast.LENGTH_LONG).show();} 

Disable Bluetooth verwenden diese

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
if (mBluetoothAdapter.isEnabled()) { 
    mBluetoothAdapter.disable(); 
} 
0

try this:

//this method to check bluetooth is enable or not: true if enable, false is not enable 
public static boolean isBluetoothEnabled() 
    { 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (!mBluetoothAdapter.isEnabled()) { 
      // Bluetooth is not enable :) 
      return false; 
     } 
     else{ 
      return true; 
     } 

    } 

//method to enable bluetooth 
    public static void enableBluetooth(){ 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (!mBluetoothAdapter.isEnabled()) { 
      mBluetoothAdapter.enable(); 
     } 
    } 

//method to disable bluetooth 
    public static void disableBluetooth(){ 
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
     if (mBluetoothAdapter.isEnabled()) { 
      mBluetoothAdapter.disable(); 
     } 
    } 

diese Berechtigungen hinzufügen in manifest

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