M C LC v
3.4.1 CÀ IT PHÍA CLIENT 48
Cài đ t phía client có nh ng ch c n ng chính là l y t a đ GPS t thi t b , g i và nh n d li u t server, nh n di n gi ng nói sinh viên.
Hình 3.7 Mô hình ho t đ ng bên phía Client
L y t a đ đ nh v toàn c u (GPS) c a thi t b
Tìm ki m m t Provider theo tiêu chí :
S d ng l p Criteria đ yêu c u thi t b x lý chính xác nh ng s li u có s n nh : v
đ và kinh đ , t c đ , đ cao, chi phí và yêu v c u n ng l ng đi n. Criteria criteria = new Criteria();
criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(true);
Chúng ta có th dùng getBestProvider là s k t h p t t nh t tr đ v cho Location Provider ho c dùng getProvider, s d ng getBestProvider nhà cung c p s tr l i các tiêu chí t t nh t, s d ng Boolean cho phép h n ch nh ng k t qu t nhà cung c p đang đ c ho t đ ng.
String bestProvider = locationManager.getBestProvider(criteria, true);
List<String> matchingProviders = locationManager.getProviders(criteria,false);
Tìm t o đ GPS:
M c đích c a d ch v đ nh v là tìm ra v trí v t lý c a thi t b .
truy c p vào Location Manager th c hi n các yêu c u LOCATION_SERVICES ta s d ng ph ng th c getSystemService:
String serviceString = Context.LOCATION_SERVICE; LocationManager locationManager;
locationManager = (LocationManager)getSystemService(serviceString);
Tr c khi s d ng Location Manager thì c n thêm m t ho c nhi u th uses- permission trong file mainfest đ truy c p vào các ph n c ng c a LBS trong đó bao g m c fine và coarse nh sau:
<uses-permission Android:name=”Android.permission.ACCESS_FINE_LOCATION”/> <uses-permission Android:name=”Android.permission.ACCESS_COARSE_LOCATION”/>
Chúng ta có th tìm th y v trí b ng cách xác đnh m t Location Provider s d ng ph ng th c getKnowLocation và đ a vào tên c a Location Provider.
Theo dõi s di chuy n (Tracking Movement):
S d ng ph ng th c requestLocationUpdate đ c p nh t b t k m t v trí, khi v trí hi n t i thay đ i chúng ta s d ng m t LocationListener.LocationListener th c hi n và
đ ng ký đ nh n thông tin.LocationListener r t linh ho t và nhi u tính n ng cho phép ch n nhi u lo i s ki n v v trí d a trên đ c tính khác nhau.
Ph ng th c requestLocationUpdate ch p nh n m t Location Provider ho c Criteria
đ xác đnh nhà cung c p đ c s d ng.
o n code sau s th hi n m t yêu c u c p nh t th ng xuyên d a trên m c t i thi u v th i gian và kho ng cách.
String provider = LocationManager.GPS_PROVIDER; int t = 5000; // milliseconds
int distance = 5; // meters
LocationListener myLocationListener = new LocationListener() { public void onLocationChanged(Location location) {
// Update application based on new location. }
public void onProviderDisabled(String provider){ // Update application if provider disabled.
}
public void onProviderEnabled(String provider){ // Update application if provider enabled.
}
public void onStatusChanged(String provider, int status,Bundle extras){ // Update application if provider hardware status changed.
} };
locationManager.requestLocationUpdates(provider, t, distance, myLocationListener); Giao ti p gi a client Android và Server :
ng d ng s d ng th vi n m KSOAP2 h tr h đi u hành Android đ k t n i web service client và Server. ây là m t th vi c soap hi u qu cho nên t ng android v i nhi u tính n ng c i ti n và phát tri n thêm các phiên b n sau.
KSOAP2 là gì ?
KSOAP2 là m t th vi n m cho các SOAP web service client trong môi tr ng Java nh Applet hay ng d ng J2ME. KSOAP2 đ c thi t k l i hoàn toàn d a trên nh ng th c nghi m t phiên b n đ u tiên ksoap1.x. KSOAP2-Android là m t nhánh trong th vi n KSOAP2 đ c thêm vào đ h tr cho n n t ng Android.
S d ng KSOAP2 đ l y d li u t Server :
th c hi n các ch c n ng chính c a ng d ng, ph n m m s k t n i đ n server và yêu c u tr v các d li u khác nhau. Nh ng k thu t đ g i, nh n d li u t server là t ng t nhau và theo m t quy đnh chung:
+ Kh i t o m t đ i t ng SoapObject đ g i yêu c u đ n server v i các tham s truy n vào là NAMESPACE và METHOD_NAME
+ Truy n vào giá tr c a tham s b ng cách dùng ph ng th c addProperty có s n c a
đ i t ng soapObject.
+ S d ng Soap Envelope dùng đ trao đ i gi a các client và webservice server. + X lý k t qu tr v b ng k thu t trong ngôn ng java và hi n th các thông tin c n thi t.
Ví d : Ki m tra Sinh viên có đang trong c c h c hay không B c 1 : kh i T o h ng s
private static final String SOAP_ACTION = "http://tempuri.org/XuLy"; private static final String OPERATION_NAME = "XuLy";
private static final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
private static final String SOAP_ADDRESS = "http://androidws.somee.com/DD_WebService.asmx"; B c 2: Kh i t o SoapObject và các tham s truy n vào
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME); PropertyInfo propertyInfo = new PropertyInfo();
request.addProperty("kinhDo",viDo); request.addProperty("viDo",viDo);
B c 3. : G i d li u lên Server
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true;
envelope.setOutputSoapObject(request); B c 4 : Nh n giá tr tr v t server.
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); SoapObject response=null;
try {
httpTransport.call(SOAP_ACTION, envelope); response =(SoapObject) envelope.getResponse(); } catch (Exception exception){ … }
return response;
Cài đ t Google Maps API:
V i Google Map API, chúng ta có th thêm m t t m b n đ vào ng d ng d a trên d li u đ s c a Google Maps. API t đ ng qu n lý vi c truy xu t đ n server Google Map, t i các d li u v , hi n th b n đ , g i ph n h i đ n các thao tác trên b n đ . Ngoài
ra Google Maps còn có th thêm các đi m đánh d u, đánh d u các khu v c và che ph b n đ c b n b ng các tu ch nh c a riêng ng i dùng.
cài đ t đ c Google Map API lên ng d ng Android đ u tiên chúng ta c n cài đ t Google Play Service SDK. Sau đó đ ng kí mã API đ c cung c p mi n phí. Sau khi đã có mã API, chúng ta c n khai báo mã API trong d án Android, c th là trong t p tin AndroidManifest.xml nh sau:
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="(Mã API đ c Google cung c p)" />
T đó chúng ta đã có Google Maps nhúng vào d án và có th l p trình đ ng d ng thông qua các ch c n ng mà Google Maps cung c p.