Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:aml:lab3 [2013/10/25 10:10]
esimon [GPS]
pl:dydaktyka:aml:lab3 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Dostęp do danych GPS w Androidzie ====== ====== Dostęp do danych GPS w Androidzie ======
 ===== Ambient Profile ===== ===== Ambient Profile =====
-Zintegruj program [[https://​sbobek@bitbucket.org/​sbobek/​aml_gpstracker|GPS Tracker]] z projektem GUI [[https://​sbobek@bitbucket.org/​sbobek/​aml_ambientprofile|Ambient Profile]], tak aby:+Zintegruj program [[https://​sbobek@bitbucket.org/​sbobek/​aml_gpstracker_studio|GPS Tracker]] z projektem GUI [[https://​sbobek@bitbucket.org/​sbobek/​aml_ambientprofile|Ambient Profile]], tak aby:
  
 {{:​pl:​dydaktyka:​aml:​ambient-profile.png?​300 |}}  {{:​pl:​dydaktyka:​aml:​ambient-profile.png?​300 |}} 
   * Pierwszy fragment (**Status**) umożliwiał włączanie i wyłączanie usługi śledzenia.   * Pierwszy fragment (**Status**) umożliwiał włączanie i wyłączanie usługi śledzenia.
-  * Drugi fragment (**Profiles**) wyświetlał listę profili jakie użytkownik aktualnie ma. Dodaj przycisk i aktywność (FragmentDialog) umożliwiający dodanie nowego profilu. Zaprojektuj klasę reprezentującą profil, przechowującą różne rodzaje profilu (nazwa, co ma się dziać kiedy profil jest aktywny)+  * Drugi fragment (**Profiles**) wyświetlał listę profili jakie użytkownik aktualnie ma. Dodaj przycisk i aktywność (FragmentDialog) umożliwiający dodanie nowego profilu. ​**Zaprojektuj** klasę reprezentującą profil, przechowującą różne rodzaje profilu (nazwa, co ma się dziać kiedy profil jest aktywny) 
 +  * Przetestuj działanie aplikacji za pomocą DDMS
   * **Zadanie dodatkowe** Trzeci fragment (Map) wyświetlać powinien mapę z ikonami profili w obszarach ich aktywacji   * **Zadanie dodatkowe** Trzeci fragment (Map) wyświetlać powinien mapę z ikonami profili w obszarach ich aktywacji
 +  * **Zadanie dodatkowe** Do detekcji tego czy ktoś pojawił się w obszarze aktywacji danego profilu wykorzystaj //​geopłoty//​ [[http://​developer.android.com/​training/​location/​geofencing.html|Geofences]]
   ​   ​
 ===== Baza danych ===== ===== Baza danych =====
 Dodaj do projektu klasy odpowiedzialne za zapisywanie i odczyt profili użytkownika z i do bazy SQLite. Dodaj do projektu klasy odpowiedzialne za zapisywanie i odczyt profili użytkownika z i do bazy SQLite.
-Poniżej znajdują się przykłady takich klas do przechowywania danych GPS.+Poniżej znajdują się przykłady takich klas do przechowywania danych GPS. **Zmodyfikuj** je tak aby umożliwiały przechowywanie profili zaprojektowanych w poprzednim ćwiczeniu.
  
 Przykładowe wykorzystanie klas poniżej: Przykładowe wykorzystanie klas poniżej:
Linia 32: Linia 34:
 </​code>​ </​code>​
 ==== GPS ==== ==== GPS ====
 +Poniżej klasa reprezentująca rekord danych.
 <file java GPS.java>​ <file java GPS.java>​
 public class GPS { public class GPS {
Linia 59: Linia 62:
  
 ==== DataBaseHelper ==== ==== DataBaseHelper ====
- +Poniżej klasa służąca za uchwyt do bazy danych. 
-<code java>+Tworzy bazę danych i umożliwia operację na tabelach i danych. 
 +Jest wykorzystywana przez klasę //​GPSDataSource//​. 
 +<file java DataBaseHelper.java>
 import android.content.Context;​ import android.content.Context;​
  
Linia 112: Linia 117:
  
  
-</code>+</file>
  
  
 ==== GPSDataSource ==== ==== GPSDataSource ====
 +Klasa opakowuje klasę //​DataBaseHelper//​ udostępniając interfejs dedykowany dla operacji na obiektach klasy //GPS//.
  
-<code java>+<file java GPSDataSource.java>
 import java.util.ArrayList;​ import java.util.ArrayList;​
 import java.util.List;​ import java.util.List;​
Linia 180: Linia 186:
  
   public List<​GPS>​ getAllGPS() {   public List<​GPS>​ getAllGPS() {
-    List<​GPS> ​comments ​= new ArrayList<​GPS>​();​+    List<​GPS> ​gpses = new ArrayList<​GPS>​();​
  
     Cursor cursor = database.query(DataBaseHelper.TABLE_GPS,​     Cursor cursor = database.query(DataBaseHelper.TABLE_GPS,​
         allColumns, null, null, null, null, null);         allColumns, null, null, null, null, null);
  
-    cursor.moveToFirst(); +    ​if(cursor.moveToFirst()){ 
-    while (!cursor.isAfterLast()) { +      while (!cursor.isAfterLast()) { 
-      GPS gps = cursorToGPS(cursor);​ +        GPS gps = cursorToGPS(cursor);​ 
-      ​comments.add(gps);​ +        gpses.add(gps);​ 
-      cursor.moveToNext();​+        cursor.moveToNext();​ 
 +      }
     }     }
     // Make sure to close the cursor     // Make sure to close the cursor
     cursor.close();​     cursor.close();​
-    return ​comments;+    return ​gpses;
   }   }
  
Linia 199: Linia 206:
     GPS gps = null;     GPS gps = null;
     if (cursor != null) {     if (cursor != null) {
-      if (cursor.moveToFirst()) { +       gps = new GPS();  
-         gps = new GPS();  +       ​gps.setId(cursor.getLong(0));​ 
-  gps.setId(cursor.getLong(0));​ +       ​gps.setLat(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LAT)));​ 
-  gps.setLat(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LAT)));​ +       ​gps.setLon(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LON)));​ 
-  gps.setLon(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LON)));​ +       ​gps.setTimestamp(cursor.getString(cursor.getColumnIndex(DataBaseHelper.COLUMN_TIME)));​ 
-  gps.setTimestamp(cursor.getString(cursor.getColumnIndex(DataBaseHelper.COLUMN_TIME)));​ +       ​gps.setFrequency(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_FREQUENCY)));​ 
-  gps.setFrequency(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_FREQUENCY)));​ +       ​gps.setBattery(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_BATTERY_LEVEL)));​
-  gps.setBattery(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_BATTERY_LEVEL)));​ +
-      }+
     }      } 
     return gps;     return gps;
   }   }
  
-</code>+</file> 
  
  
  
-===== Geopłoty ​ ===== 
  
  
  
  
pl/dydaktyka/aml/lab3.1382688646.txt.gz · ostatnio zmienione: 2019/06/27 15:51 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0