Chcę włączyć / wyłączyć bluetooth w programie. Mam następujący kod.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
Ale ten kod nie działa w SDK 1.5. Jak mogę to zrobić?
Odpowiedzi:
Dokumentacja Android BluetoothAdapter mówi, że jest on dostępny od poziomu API 5. Poziom API 5 to Android 2.0.
Możesz spróbować użyć backport interfejsu API Bluetooth (nie próbowałem tego osobiście): http://code.google.com/p/backport-android-bluetooth/
źródło
ten kod zadziałał dla mnie ..
Aby to zadziałało, musisz mieć następujące uprawnienia:
źródło
Oto nieco bardziej solidny sposób, w jaki można to zrobić, obsługujący również wartości zwracane przez
enable()\disable()
metody:I dodaj następujące uprawnienia do pliku manifestu:
Ale pamiętaj o tych ważnych kwestiach:
AKTUALIZACJA:
Ok, więc jak zaimplementować odbiornik bluetooth ?:
A jak zarejestrować / wyrejestrować odbiorcę? (W twojej
Activity
klasie)źródło
BLUETOOTH_ADMIN
pozwolenie, to działa, ale jeśli nie, musisz użyć,startActivityForResult(enableBtIntent, 0);
aby włączyć bluetoothBluetooth 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.
co to znaczy? Na przykład. Zrobiłem małą aplikację z twojego kodu i zadziałała. Ale jeśli chcę przesłać do Play Store, to nie zadziała?Aby włączyć Bluetooth, możesz użyć jednej z następujących funkcji:
Druga funkcja to:
Różnica polega na tym, że pierwsza funkcja sprawia, że aplikacja pyta użytkownika o pozwolenie na włączenie Bluetooth lub odmowę. Druga funkcja sprawia, że aplikacja bezpośrednio włącza Bluetooth.
Aby wyłączyć Bluetooth, użyj następującej funkcji:
UWAGA / Pierwsza funkcja wymaga tylko następujących uprawnień do zdefiniowania w pliku AndroidManifest.xml:
Podczas gdy druga i trzecia funkcja wymagają następujących uprawnień:
źródło
Rozwiązanie prijin zadziałało idealnie dla mnie. Wystarczy wspomnieć, że potrzebne są dwa dodatkowe uprawnienia:
Po ich dodaniu włączanie i wyłączanie działa bezbłędnie z domyślnym adapterem Bluetooth.
źródło
Użyłem poniższego kodu, aby wyłączyć BT, gdy moja aplikacja uruchamia się i działa dobrze. Nie jestem pewien, czy to właściwy sposób implementacji, ponieważ Google odradza korzystanie z funkcji „bluetooth.disable ();” bez wyraźnej akcji użytkownika, aby wyłączyć Bluetooth.
Skorzystałem tylko z poniższego pozwolenia.
źródło
Dodaj następujące uprawnienia do pliku manifestu:
Włącz Bluetooth, użyj tego
Wyłącz funkcję Bluetooth
źródło
Spróbuj tego:
Dodaj te uprawnienia w manifeście
źródło