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
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:
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/…
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:
Wenn diese hinzugefügt werden, funktioniert das Aktivieren und Deaktivieren mit dem Standard-Bluetooth-Adapter einwandfrei.
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.
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.
9241200cookie-checkSo aktivieren / deaktivieren Sie Bluetooth programmgesteuert in Androidyes
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