Programowanie urządzeń mobilnych

Transkrypt

Programowanie urządzeń mobilnych
Czujniki i listy



Napisz program, który
przekształca skrót państwa
(znajdujący się na tablicach
rejestracyjnych samochodu) na
jego nazwę.
Program musi wykorzystywać
komponent ListView.
Dane odnośnie skrótów i nazw
Państw mają być
przechowywane w dwóch
tablicach np.
private String kraje[] =
{„Polska”, „Niemcy”}
private String skrot[] = {„PL”,
„DE”}


Zmodyfikuj
poprzednie zadanie,
by wykorzystywał
tablicę ciągów
zdefiniowaną w pliku
zasobów strings.xml.
Odczyt
private String countries[];
countries =
getResources().getStringArray
(R.array.countries_array);
Wewnątrz strings.xml
<string-array
name="countries_array">
<item>Polska</item>
<item>Anglia</item>
<item>Niemcy</item>
<item>Francja</item>
<item>Austria</item>
<item>Chorwacja</item>
<item>Ukraina</item>
<item>Węgry</item>
</string-array>
<string-array
name="shortcuts_array">
<item>PL</item>
<item>EN</item>
<item>DE</item>
<item>FR</item>
<item>A</item>
<item>HR</item>
<item>AU</item>
<item>H</item>
</string-array>


Napisz prostą galerię zdjęć, w której zdjęcia
będą przewijane za pomocą
HorizontalScrollView widget.
Skorzystaj w tym celu z komponentów
omówionych na wykładzie 03 Widgety oparte
na listach (slajdy od 38).



Bazując na listach, napisz aplikację typu „lista
zadań do zrobienia”.
Stwórz własny szablon wyglądu elementu
listy, by zawierał tekst zadania oraz po
kliknięciu umożliwiał oznaczenie go jako
zrobione / nie zrobione.
Spróbuj wyszukać w internecie jak dodawać i
usuwać elementy listy.
Uprawnienia
W Androidzie aby
korzystać z większości
elementów, należy
poprosić system o
dane uprawnienie.
Zmieniamy je w pliku
AndroidManifest.xml
Listę uprawnień
można znaleźć tutaj:
http://developer.andr
oid.com/reference/an
droid/Manifest.permis
sion.html
Linia 21 i 22: sprawdzamy jakie mamy sensory dostępne w urządzeniu.
Linia 24: do LogCata wypisujemy dostępne sensory (w 22 linijce możemy
filtrować po typie, np. tylko sensory lokalizacyjne, albo temperatury).
Odczytujemy orientację telefonu
1.
Musimy
zaimplementować
interfejs
SensorEventListener.
2.
3.
Dzięki temu możliwe
będzie podpięcie się
pod wartości
sensorów.
Przydadzą się różne
zmienne
(korzystamy z
akcelerometru i
magnetometru)
Pamiętaj o
uprawnieniach.
Odczytujemy orientację telefonu
Za pomocą menagera sensorów podpinamy się pod dwa
sensory – akcelerometr i czujnik pola magnetycznego.
Przypisuję też TextView na formie do zmiennych w programie.
Odczytujemy orientację telefonu
W metodzie onResume() rejestruję aplikację jako
krozystającą z czujników. W metodzie onPause() –
wyrejestrowuję.
Z racji interfejsu trzeba zaimplementować metody
onAccuracyChanged() oraz onSensorChanged().
Pierwsza wywołuje się jeśli z jakichś powodów zmieni się
dokładnosć sensora, druga – gdy zmieni się jego
wartość.
Odczytujemy orientację telefonu
Właściwe odczytanie orientacji przez funkcję
getRotationMatrix() i getOrientation().
Uwzględnia ona dane z czujników i zwraca azymut,
przechyl w poziomie i przechyl w pionie.


Napisz prosty program typu poziomica.
Zadbaj o prawidłowe wygładzanie wartości
(wartości czujników bardzo szybko się
zmieniają)
Odczytuj informacje co jakiś czas, a nie co ich
zmianę
UWAGA! Na emulatorze nie da się tego przetestować, o ile nie skorzystamy z
Sensor Simulator!
http://www.botskool.com/geeks/how-use-sensor-simulator-android-sdkemulator


Napisz program typu labirynt. Za pomocą
czujnika orientacji i czasu (sprawdź jak
mierzyć czas w Androidzie) napisz program
typu:
„Idź przez 10 sekund na południowy wschód,
potem 20 sekund na północ”.
Jeśli chcesz i jesteś w stanie – sprawdzaj
liczbę kroków (trudne!) za pomocą
skokowych zmian akcelerometru.

Zasada działania identyczna, zmienia się
tylko rodzaj wykorzystywanego czujnika:

Napisz aplikację, która wyświetla
użytkownikowi spokojną grafikę dopóki ten
nie przybliży ręki do czujnika. Wtedy
następuje podmiana grafiki na coś strasznego


Za pomocą czujnika światła (TYPE_LIGHT)
określaj jak jasno jest w pokoju. Przerób
swoją latarkę tak, aby dostosowywała jasność
nie za pomocą slidera, ale automatycznie.
Sprawdź jakie inne czujniki można
wykorzystać:
http://developer.android.com/guide/topics/s
ensors/sensors_environment.html