5

Anwendung Ich arbeite an Orten und BLE verwendet und wenn Standort oder Bluetooth deaktiviert sind, muss ich Benutzer bitten, sie zu aktivieren.Wie kann ich die Bluetooth-Eingabeaufforderung von Google Play Services aktivieren?

Die neuesten Google Play-Dienste bieten eine Standardmethode für die Verwendung von LocationSettingsRequest, mit der die Anforderungen überprüft und Standard-Popups ausgelöst werden, wenn Änderungen an den Einstellungen erforderlich sind. Es funktioniert wie ein Charme für den Standort allein, aber sobald ich SetNeedBle (true) zu LocationSettingsRequest hinzufügen, bekomme ich einen Status SETTINGS_CHANGE_UNAVAILABLE.

Die nur meine Vermutung war ich AddApi (FitnessClass.BLE_API) Anruf zu einem GoogleApiClientBuilder hinzufügen müssen, wie es für BLE Funktionalität von entscheidender Bedeutung sein könnte, aber dann mit SIGN_IN_REQUIRED Status Ich habe Verbindung zu Google Play-Dienste konnten die, wie ich BLE Teil nur verwirrend brauchen Fitness-Service.

Kennt jemand gutes Beispiel für LocationSettingsRequest Verwendung, um Benutzer für beide Standorte und Bluetooth?

Location popup

Antwort

0

aussehen, wie es ist in 8.1.0 so SetNeedBle (true) Arbeiten festgelegt, wie erwartet:

enter image description here

1

Sie sind ganz in der Nähe. In der LocationSettingsRequest.Builder gibt es setNeedBle(boolean needBle), die ein Dialogfeld auftauchen wird, um nach BLE zu fragen. Verwenden Sie nicht die Fitness-API für den BLE-Standort.

außerdem sicher, dass das Telefon BLE durch Zugabe in den manifesten aktivieren ist:

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

Dann in Sie Code:

if(context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { 
    //has BLE 
} 

Und von Google-Service Spielen Sie die SettingApi verwenden können, die die fragen System über verfügbare Funktionen. Das Handbuch enthält ein vollständiges Beispiel für die Verwendung.

https://developers.google.com/android/reference/com/google/android/gms/location/LocationSettingsRequest.Builder.html#setNeedBle(boolean)

+0

Ich habe das schon einmal ausprobiert, aber was ich bekommen ist 'SETTINGS_CHANGE_UNAVAILABLE' Status. Hast du eine funktionierende Probe? – Mikhail

+0

Welche Version von Android zielen Sie? Sie können Telefon ohne BLE auf dem Manifest mit '' – xiaomi

+0

Anwendung bereits erwähnt Zeilen im Manifest und ich war versuche 'setNeedBle (boolean)' auf Samsung Galaxy S3 (4.3) und LG G3 (5.0). Beide Male gab es mir 'SETTINGS_CHANGE_UNAVAILABLE'. – Mikhail

Verwandte Themen