2013-11-15 8 views
12

Szukam sposobu automatycznego połączenia urządzenia z systemem Android z urządzeniem Bluetooth LE (4.0 Smart), gdy znajdzie się w zasięgu (i zacznie wyświetlać reklamy). Spodziewam się, że działa jak słuchawki Bluetooth - po włączeniu automatycznie łączą się ze sparowanym telefonem (jeśli jest w zasięgu).Android: Czy można automatycznie połączyć się z urządzeniem Bluetooth LE, gdy znajdzie się w zasięgu i zacznie wyświetlać reklamy?

Myślałem o uruchomieniu usługi w tle, która będzie okresowo (co 50-100ms) sprawdzić reklamę. Jednak jednym z głównych problemów jest żywotność baterii urządzenia z systemem Android.

Czy ktoś mógłby doradzić, jaki byłby najlepszy sposób wdrożenia takiej funkcjonalności w systemie Android 4.3 lub nowszym?

Z góry dziękuję!

+0

Pytanie brzmi, czy połączenie BLE jest utrzymywane, gdy urządzenie przechodzi w tryb uśpienia. Zapytałem go tutaj http://stackoverflow.com/questions/29118771/what-happens-to-connection-with-ble-device-when-android-goes-in-sleep-mode/29119416#29119416 –

Odpowiedz

1

Możesz zarejestrować odbiornik, aby odbierać audycje po znalezieniu urządzenia Bluetooth. Zobacz temat przewodnika API Bluetooth, aby uzyskać szczegółowe informacje i przykładowy kod.

Zobacz także temat: Bluetooth Low Energy.

Na koniec spójrz na this thread, które jest w zasadzie to samo pytanie.

+0

Czy możesz sprawdzić [to pytanie] (http://stackoverflow.com/questions/31761416/connect-to-bluetooth-programmatically) proszę? :( –

0

W rzeczywistości działa to tylko w przypadku standardowego połączenia Bluetooth. Dla transmisji Bluetooth smart ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED nie działają.

Dla BLE musisz pracować z interfejsami API i wywołania zwrotnego w mBluetoothAdapter.startLeScan(mLeScanCallback); po znalezieniu urządzenia.

1

Ustaw parametr autoConnect w connectGatt() na true. (drugi parametr)

+1

to nie działa dla mnie – Onheiron

+0

Witam, czy masz usługę w tle, do której podłączony jest gattCallback, a po uruchomieniu usługi dzwonisz connectGatt z urządzeniem usuwającym, które utworzyłeś z twoim adresem mac, autoConnect = true i odpowiednie wywołania zwrotne? – user3698465

Powiązane problemy