poniedziałek, 17 lutego 2014
Czujnik zbliżeniowy
Kod źródłowy do tej lekcji znajduje się tutaj. Rozpakuj go i zaimportuj. W katalogu z kodem źródłowym znajdą się podkatalogi oznaczone numerami. Są to po prostu kolejne wersje kodu, tworzonego w ramach przykładów. Możesz analizować kolejne kroki tworzenia aplikacji, lub od razu zabrać się za kod z katalogu o najwyższym numerku.
Obsługa czujnika zbliżeniowego jest bardzo podobna do omawianego wcześniej czujnika orientacji. Do ekranu przyklejam jeden TextView na którym będę wyświetlał wyniki:
Podobnie jak i przy czujniku orientacji implementuję interfejs SensorEventListener. Kod metody onCreate jest praktycznie taki sam jak i przy czujniku orientacji, z tą różnicą że przy rejestracji listenera jako parametr podajemy typ sensora Sensor.TYPE_PROXIMITY a nie TYPE_ORIENTATION. Podobnie jak i przy czujniku orientacji metoda onSensorChanged jest automatycznie wywoływana w momencie zmiany odczytów czujnika. W linii 33 wyświetlam na komponencie textView odczyt. Na urządzeniu Samsung ACE3 wyświelał tylko dwie wartości – 0, albo 5 jeśli zbliżyłem rękę na mniej niż ok 2cm.
W bardzo podobny sposób możemy wykorzystywać inne czujniki – np. czujnik temperatury (jeśli urządzenie takowy posiada). Wystarczyłoby w takim wypadku zamienić w linii 22 typ sensora z Sensor.TYPE_PROXIMITY na Sensor.TYPE_TEMPERATURE.
Subskrybuj:
Komentarze do posta (Atom)
Pokazujesz na zdjęciach co innego niż co jest w twoim pobranym projekcie.
OdpowiedzUsuńWłaśnie. Kod źródłowy pokazany na "zdjęciu" zawiera błędy, a ten w projekcie jest prawidłowy.
UsuńPatrząc na czujnik gołym okiem w ciemności lub przez aparat cyfrowy można zobaczyć, jak świeci się będąca jego częścią dioda IR. W moim smartfonie widać to nawet po wyjściu z aplikacji przyciskiem "Wstecz", dopiero zamknięcie jej poprzez usunięcie z listy ostatnio używanych aplikacji (Android 5.0.1) powoduje wyłączenie czujnika.
OdpowiedzUsuńDlatego warto zaimplementować metodę onPause(), dodając wpis sm.unregisterListener(this); - wtedy wyłączysz czujnik. Niestety, tego nie ma tutaj w kursie lecz http://developer.android.com/reference/android/hardware/SensorManager.html
UsuńWartościowy artykuł
OdpowiedzUsuńCiekawie napisane
OdpowiedzUsuńBardzo ciekawy i wartościowy wpis. Dobrze że tu trafiłem.
OdpowiedzUsuńWłaśnie takich informacji szukałem. Super wpis
OdpowiedzUsuńWedług mnie zakupy w sklepach internetowych to ogromna wygoda, często korzystam z tej opcji. Jeżeli szukacie sprawdzonego sklepu internetowego z automatyką przemysłową, to polecam Wam sprawdzić ofertę na stronie https://gigaom.pl/ . Co Wy sądzicie o ofercie?
OdpowiedzUsuń