2015-09-10 14 views
5

Aplikacja, nad którą pracuję, wykorzystuje zarówno Lokalizacje, jak i BLE, a jeśli lokalizacja lub bluetooth są wyłączone, muszę poprosić użytkownika o ich włączenie.Wyskakujące okienko Włącz opcję Bluetooth w usługach Google Play?

Najnowsze usługi Google Play zapewniają standardowy sposób wykonania tego przy użyciu LocationSettingsRequest, który sprawdza wymagania i podnosi standardowy popup, jeśli wymagane są zmiany ustawień. Działa jak urok dla samej lokalizacji, ale po dodaniu SetNeedBle (true) do LocationSettingsRequest otrzymuję status SETTINGS_CHANGE_UNAVAILABLE.

Jedyne moje przypuszczenie było trzeba dodać AddApi (FitnessClass.BLE_API) wezwanie do GoogleApiClientBuilder jak to może mieć istotne znaczenie dla BLE funkcjonalności, ale wtedy mam dostęp do usługi Google Play nie powiodło się z SIGN_IN_REQUIRED stanu, która jest mylące, ponieważ po prostu trzeba BLE część Usługi fitness.

Czy ktoś wie, dobry przykład użycia LocationSettingsRequest, aby zapytać użytkownika o lokalizację i bluetooth?

Location popup

Odpowiedz

0

wyglądało, że został naprawiony w 8.1.0 tak SetNeedBle (true) działa zgodnie z oczekiwaniami:

enter image description here

1

Jesteś bardzo blisko. W numerze LocationSettingsRequest.Builder znajduje się setNeedBle(boolean needBle), które wyświetli okno dialogowe z pytaniem o BLE. Nie używaj interfejsu Fitness API dla lokalizacji BLE.

również upewnić się, że telefon jest BLE włączyć dodając do manifestu:

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

Następnie w was kodu:

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

I z Google Play na życzenie można użyć SettingApi który poprosić system o dostępnych funkcjach. Przewodnik zawiera pełny przykład tego, jak z niego korzystać.

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

+0

Próbowałem tego wcześniej, ale co mam to 'stan SETTINGS_CHANGE_UNAVAILABLE'. Czy masz działającą próbkę? – Mikhail

+0

Na którą wersję Androida jesteś kierowany? Możesz uniknąć telefonu bez BLE na manifeście z '' – xiaomi

+0

Aplikacja już wspomniała wiersze w manifeście i byłem próba 'setNeedBle (boolean)' na Samsung Galaxy S3 (4.3) i LG G3 (5.0). Za każdym razem dało mi to "SETTINGS_CHANGE_UNAVAILABLE". – Mikhail

Powiązane problemy