thuc_hanh_android_2013.pdf

78
Lập trình cho thiết bị di động Trang 1 Khi: Đại Hc Năm 2013 Hướng dn: Bài tp thực hành được chia theo Module Mi Module được thiết kế cho thời lượng là 312 tiết thc hành ti lp vi shướng dn ca ging viên. Tùy theo stiết phân b, mi tun hc có ththc hin nhiu Module. Sinh viên phi làm tt ccác bài tp trong các Module tuần tương ứng. Những sinh viên chưa hòan tất phn bài tp ti lp có trách nhim tlàm tiếp tc nhà. Các bài có du (*) là các bài tp nâng cao dành cho sinh viên khá gi i. Biên son: GV Trn Duy Thanh

Upload: nguyen-dang

Post on 12-Nov-2015

8 views

Category:

Documents


0 download

DESCRIPTION

thuc hanh android

TRANSCRIPT

  • Lp trnh cho thit b di ng

    Trang 1

    Khi: i Hc

    Nm 2013

    Hng dn:

    Bi tp thc hnh c chia theo Module

    Mi Module c thit k cho thi lng l 312 tit thc hnh ti lp vi

    s hng dn ca ging vin.

    Ty theo s tit phn b, mi tun hc c th thc hin nhiu Module.

    Sinh vin phi lm tt c cc bi tp trong cc Module tun tng ng.

    Nhng sinh vin cha han tt phn bi tp ti lp c trch nhim t lm

    tip tc nh.

    Cc bi c du (*) l cc bi tp nng cao dnh cho sinh vin kh gii.

    Bin son: GV Trn Duy Thanh

  • Lp trnh cho thit b di ng

    Trang 2

    MC LC

    Module 1: Gii thiu mi trng pht trin in thoi di ng.................................. 3

    Module 2: X l giao din ngi dng ....................................................................... 13

    Module 3: X l tp tin, lu trng thi, CSDL, Content Provider ........................... 40

    Module 4: X l a tin trnh v dch v .................................................................... 49

    Module 5: Networking APIs v Multimedia APIs ..................................................... 62

    Module 6: Telephony APIs v Location Base Service APIs ...................................... 70

    Module 7: Thao tc vi thit b cm ng .................................................................... 74

    Module 8: Danh sch ti mn hc .......................................................................... 77

  • Lp trnh cho thit b di ng

    Trang 3

    Module 1: Gii thiu mi trng pht trin in thoi di ng

    Ni dung kin thc thc hnh:

    - Lm quen vi mi trng pht trin in thoi di ng

    - S dng Eclipse, DDMS cch thc Debug

    - Cch ci t Android SDK, Update Android API, Upgrade Firmware

    - S dng Android Virtual Device

    - Tm hiu cc thnh phn trong Android App

    - Tm hiu cc n v o lng trong Android

    - Tm hiu vng i ca ng dng

    - Tm hiu Google Play

    Bi tp 1: Mc ch:

    - Ci t c Java JDK, Android SDK, ADT plugin for Eclipse, update Android SDK.

    Yu cu: - Ti v ci t Java JDK: http://java.sun.com/javase/downloads/index.jsp

    - Ti v ci t Android SDK: http://developer.android.com/sdk/index.html , ti gi ADT

    Bundle for Windows, gi ny s cha cc thnh phn:

    o Eclipse + ADT plugin

    o Android SDK Tools

    o Android Platform tools

    o Android API mi nht

    o Android system image mi nht cho Emulator

    - Cp nht ADT plugin mi nht cho Eclipse:

    1. Vo menu Help / chn Install New Software

    2. Nhp ng dn: https://dl-ssl.google.com/android/eclipse/ v bm nt Add gc

    bn phi

    3. Chn cc thng s thch hp tin hnh cp nht.

    - Cp nht Android SDK

    - Tham chiu Android SDK

    Hng dn: - Sau khi cu hnh thnh cng v khi ng Eclipse th ta s c mn hnh nh di y:

  • Lp trnh cho thit b di ng

    Trang 4

    - ng mn hnh Welcome bng cch click vo du cho k bn ch Android IDE

    - tham chiu ti Android SDK, ta vo menu Windows/ Preferences/ chn Android vo

    Browse ti SDK location m bn lu tr:

    - cp nht Android SDK, ta vo menu Windows/ Android SDK Manager (hoc bm

    vo biu tng trn thanh toolbar), chn cc gi cn cp nht v bm Install packages:

  • Lp trnh cho thit b di ng

    Trang 5

    Bi tp 2:

    Mc ch: - To v thao tc c vi Android Virtual Device

    - S dng c DDMS

    - Cu hnh thit b debug

    Yu cu: - To Android Virtual Device:

    o t tn cho thit b

    o Chn loi thit b

    o Chn Target API

    o Cu hnh Keyboard, Skin, Camera

    o Thit lp internal storage

    o Thit lp SD Card

    o Chc nng Snapshot

    - Khi ng AVD va mi to, tin hnh thc hin: quan st v th nghim cc chc nng

    bn trong AVD, thit lp USB Debugging

    - Thao tc trn DDMS:

    o Kim tra cu trc th mc, ko th mt s tp tin vo AVD v quan st hin tng

    o Thc hin unmount v Mount SD Card

    o Thc hin chc nng Gi in v gi tin nhn trong Emulator Control

    Hng dn: - T menu Windows/ chn Android Virtual Device Manager:

    - Ti mn hnh ny chn nt New

  • Lp trnh cho thit b di ng

    Trang 6

    - Chn cc thng s k thut cn thit v bm OK - Mun khi ng AVD no th click chn AVD v bm nt Start, quan st:

  • Lp trnh cho thit b di ng

    Trang 7

    Bi tp 3: Mc ch:

    - Dalvik Virtual machine

    - Hiu c cc thnh phn bn trong ng dng Android:

    o Cch to Android Project

    o Activity, Intent, View

    o Auto gen

    o Android libs

    o Resource

    o Layout, menu, values

    o Manifest XML

    Yu cu:

    - To mt Android Project, ng dng n gin ch xut hin dng ch Hello World!

    - Kim tra tt c cu trc th mc ca ng dng, cho nhn xt

    - Chy ng dng ny trn Emulator/ trn in thoi tht c h iu hnh Android.

    - Gii thch c ch m Android Project c thc hin trn thit b nh th no: cch thc

    bin dch, cch thc ng gi, cch thc upload ci t vo thit b

    - Tin hnh xa th mc Auto gen (gen), quan st hin tng

    - Vo menu Project/ chn Clean, chn Build automatically, quan st hin tng

    - Bm chut phi vo Project/ chn Build Path/ configure build Path, quan st mn hnh

    - Bm chut phi vo Project/ chn Android Tools/ quan st chc nng Fix project

    Properties v cc chc nng khc

    - Tin hnh Uninstall ng dng ra khi my

    Hng dn: - to mt Android Project: Vo menu File/ chn new/ chn Android Application

    Project - Hoc trong Package Explorer/ bm chut phi/ chn new / chn Android Application

    Project - Trong mt s trng hp khng thy Package Explorer (mn hnh chnh lp trnh), ta

    vo menu Windows/ chn Show View/ chn Package Explorer - C th hin th Logcat trong Windows/ show view/ logcat quan st thng tin qu trnh

    ng dng thc thi

  • Lp trnh cho thit b di ng

    Trang 8

    Bi tp 4: Mc ch:

    - Tm hiu vng i ca ng dng Android: cc s kin sy ra theo trnh t nh th no

    Yu cu:

    - To mt Android Project, t tn l LearnAndroidLifetime

    - Trong MainActivity, tin hnh Override cc hm onStart, onResume, onPause, onStop,

    onDestroy, onRestart; trong mi hm ny n gin ch s dng Toast hin th tn hm

    c thc thi.

    - Hy tm cch cho cc hm Override trn sy ra, cho nhn xt.

    Hng dn: - Cch s dng Toast:

    - chng trnh t thm cc Override method, ta lm nh sau: Bm chut phi vo mn

    hnh son tho/ chn Source/ chn Override Implement methods:

    - Khi ca s Implement s hin th ln, ta chn cc hm mong mun ri bm nt Ok

  • Lp trnh cho thit b di ng

    Trang 9

    Bi tp 5: Mc ch:

    - Hiu c Activity Stack

    - Hiu su hn v vng i ca ng dng

    - Hiu c Foreground lifetime v Visible lifetime

    Yu cu:

    - Hiu chnh LearnAndroidLifetime Project trong bi 4

    - Trong Project ny to thm 2 Activity ln lt tn l SubActivity1 v SubActivity2

    (nh vy Project s c tng cng 3 Activity bao gm 2 ci va to v 1 MainActivity)

    - Ch rng cu hnh sao cho SubActivity1 s hin th di dng Dialog (khi

    SubActivity1 kch hot th n s nm pha trn MainActivity, nhng m vn nhn thy

    mn hnh MainActivity tc l ng thi nhn thy 2 Activity). Cn khi SubActivity2

    hin th th n s chim ton b mn hnh, khng th thy c MainActivity.

    - Trong MainActivity to 2 Button cho php hin th SubActivity1, v SubActivity2.

    Trong mi trng hp hy quan st s kin sy ra trong MainActivity v cho nhn xt

    (ch l cc s kin chc chn s sy ra khc nhau trong 2 trng hp ny).

    o Foreground Lifetime sy ra t onResume()onPause()

    o Visible Lifetime sy ra t onStart()onStop()

    Hng dn: - Project s nh hnh sau:

    - Cu hnh SubActivity1 hin th di dng Dialog: Trong Manifest XML, thm

    android:theme= "@android:style/Theme.Dialog". Ta c th dng GUI trong Eclipse

    thay i thng s cho d dng.

    - Cch m mt Activity trong Android: y t MainActivity ta m SubActivity1 v

    SubActivity2 khi ngi s dng chn Button1, Button2

  • Lp trnh cho thit b di ng

    Trang 10

    - Phng thc findViewById tr v View theo ng Id truyn vo, mi Control trong

    Android u k tha t View, y ta p kiu v cho ng kiu Button.

    - Dng phng thc startActivity m mt Activity, ch l Activity ny c a vo

    mt Intent vi cch khai bo nh trn. - Cch chy SubActivity1 v SubActivity2 l hon ton ging nhau. Ch khc nhau lc

    hin th ln mn hnh in thoi (nh gii thch trn). - Ta s hc r hn v Intent trong phn sau, tm thi phn ny cha cn phi hiu su v

    n. Ch cn bit rng chy 1 Activity no th phi tin hnh nh vy.

  • Lp trnh cho thit b di ng

    Trang 11

    Bi tp 6: Mc ch:

    - Tm hiu Google Play

    Yu cu:

    - Vo trong https://play.google.com/store tin hnh ng k v upload .apk (c ng ph,

    hin ti l 25USD)

    - Xem hng dn c th : http://support.google.com/googleplay/android-

    developer/answer/113469?hl=en

    Hng dn:

    Bi tp ny sinh vin no c nhu cu th lm. Khi c ng dng tt mun chia s vi cng ng

    th nn lm bi tp ny.

  • Lp trnh cho thit b di ng

    Trang 12

    Bi tp 7 (*): Mc ch:

    - Bit c cch Upgrade Firmware cho mt s thit b tht s dng h iu hnh Android.

    Yu cu:

    - Tm hiu Odin mode

    - Mt s trang hu ch : http://androidmuscle.com/how-to-update-your-galaxy-s2-i9100-

    to-jelly-bean-4-1-2-xxlsj-firmware-tutorial/

    - http://www.theandroidsoul.com/?s=Odin

    Hng dn: - Phi kim tra k thng s k thut ca in thoi xem c tng thch hay khng sau

    mi tin hnh Upgrade Firmware

    - Nu khng c chc chn th ng c thc hin (nht l i vi nhng in thoi mc

    tin)

    - i khi cc sinh vin phi mo him vi thit b ca mnh khm ph (khuyn khch)

  • Lp trnh cho thit b di ng

    Trang 13

    Module 2: X l giao din ngi dng

    Ni dung kin thc thc hnh:

    - Thc hnh v XML Layout XML Container

    - Cc kiu lp trnh s kin trong Android

    - Thc hnh v Toast & Alert Dialog

    - Thc hnh cc control c bn: View, TextView, EditText, Button, RadioButton,

    - Thc hnh cc control nng cao: ListView, GridView, Spinner, Autocomplete, Menu

    - Cch to Custom Layout

    - Thc hnh v Webkit, Javascript

    - Thc hnh v Intent: cch m nhiu mn hnh (Activity) trong Android

    - Cch lp trnh chm n im v a im trong Android

    - Cch cu hnh a ngn ng trong Android

    Bi tp 1: Mc ch:

    - To v hiu chnh XML Layout

    - S dng XML Layout

    Yu cu:

    - To mt Android Project

    - To thm mt XML Layout (ty ) t tn l new_my_layout.xml

    - Ko th mt s control vo layout mi ny: Button, Checkbox, Radio

    - Tin hnh thay i layout mi ny qua cc loi: FrameLayout, LinearLayout,

    TableLayout, RelativeLayout, AbsoluteLayout, v quan st hin tng

    - Trong MainActivity, sa dng lnh setContentView(R.layout.activity_main); thnh

    setContentView(R.layout. new_my_layout);

    - Chy ng dng ny v cho nhn xt

    Hng dn:

    - to mt XML Layout: Bm chut phi vo Project/ New/ Android XML File:

    o Mn hnh to Android XML File s hin th ln, ti mn hnh ny Resource Type

    chn l Layout, phn Root Element chn loi Layout gi s l LinearLayout,

    mc File nhp tn l new_my_layout ri bm nt Finish (xem hnh trang bn).

  • Lp trnh cho thit b di ng

    Trang 14

    - thay i Layout ta lm nh sau: trong Graphical Layout/ bm chut phi chn

    Change Layout

    - Chn loi Layout ri bm nt OK thay i Layout

    - xem cu trc XML layout di dng outline: vo meu Windows/ Show View/ Outline

  • Lp trnh cho thit b di ng

    Trang 15

    Bi tp 2: Mc ch:

    - Thc hnh v hiu v FrameLayout

    Yu cu: - To mt Android Project, chuyn Layout qua loi FrameLayout

    - Thm 2 ImageView vo FrameLayout ny

    - Chy ng dng ny v cho nhn xt v v tr xut hin ca 2 ImageView trn

    Hng dn:

    Bi tp 3: Mc ch:

    - Thc hnh v hiu v LinearLayout:

    o Cch to LinearLayout (vertical, horizontal)

    o Orientation

    o Fill model

    o Weight

    o Gravity

    o Padding

    o Margin

    Yu cu: - To Android Project c cc control nh hnh bn di:

    - Thay i android:orientation="horizontal" v android:orientation="vertical" quan

    st cc control trn giao din sp xp khc nhau.

    - Trong mi control thay i android:layout_width v android:layout_height: thit lp

    3 thng s (125dip, wrap_content, fill_parent), quan st s thay i

    - Thit lp TextView User Name c android:layout_weight="1", EditText thanhtran c

    android:layout_weight="2", Button OK c android:layout_weight="1", quan st s

    thay i ca cc control trn giao din

    - Thit lp thng s android:layout_gravity="right" cho Button OK, quan st s thay i

    ca cc control c ging nh mn hnh bn di hay khng:

  • Lp trnh cho thit b di ng

    Trang 16

    - Thit lp thng s android:gravity="right" cho Button OK, quan st s thay i. Hy

    cho nhn xt s khc nhau gia layout_gravity v gravity

    - Thit lp thng s android:padding="30dip" v android:layout_margin="10dip" cho

    EditText, hy cho bit s khc bit gia padding v margin

    Hng dn: - thit lp cc thng s cho control trn giao din, ta s dng GUI ca eclipse trong ch

    Graphical Layout, hoc chnh sa trc tip trong file XML layout:

    Ch Graphical Layout

    Ch XML editor

  • Lp trnh cho thit b di ng

    Trang 17

    Bi tp 4: Mc ch:

    - Thc hnh v hiu v TableLayout:

    o To v s dng c TableLayout

    o Hiu c TableRow

    o Hiu c android:layout_span

    o Hiu c android:column

    o Hiu c android:stretchColumns

    Yu cu: - To Android Project c kiu layout l TableLayout, thit k cc control trn giao din

    ging nh hnh bn di:

    - Dng 1 cha TextView Input Catalog (c nn mu vng)

    - Dng 2 cha Text View Cate Id v EditText

    - Dng 3 cha Text View Cate Name v EditText

    - Dng 4 cha Button InsertCate

    - Chy ng dng v cho nhn xt.

    - Hy gii thch ngha ca android:layout_span, android:layout_column v

    android:stretchColumns

    - Thm 2 Button na vo dng s 4, chy ng dng v cho nhn xt

    Hng dn: - Lm theo outline layout sau:

    - Thit lp cc thng s:

    o android:stretchColumns="*" cho TableLayout

    o android:layout_span="2" cho TextView dng 1

    o android:layout_column="1" cho Button dng 4

  • Lp trnh cho thit b di ng

    Trang 18

    Bi tp 5: Mc ch:

    - Thc hnh v hiu v RelativeLayout

    o To v s dng c RelativeLayout

    o Hiu c cc RelativeLayout Parameter android:layout_ : width, height, below,

    above, alignTop, alignParentTop, alignBottom, alignParentBottom, toLeftOf,

    toRightOf, padding, margin.

    Yu cu: - To Android Project c kiu Layout l RelativeLayout, thit kt cc control nh giao

    din bn di:

    - Sau khi thit k cc control ging nh trn, yu cu thit lp li Id cho EditText

    duythanhcse, quan st hin tng sy ra i vi cc control cn li v cho nhn xt; Tm

    cch sa li cc parameter gi c giao din thit k ban u.

    - Thm 2 Checkbox ln lt c id=chk1, id=chk2. Hai Checkbox ny phi cng nm trn

    mt dng v chk1 nm bn tri mn hnh, chk2 nm bn phi mn hnh

    Hng dn: - Lm theo outline layout sau:

    - Thit lp cc thng s:

    o alignParentLeft="true", alignParentTop="true" cho lblusername

    o alignParentLeft="true", below="@+id/lblusername" cho editUserName

    o alignParentRight="true", below="@+id/editUserName" cho btnOK

    o alignBaseline="@+id/btnOK", alignBottom="@+id/btnOK",

    toLeftOf="@+id/btnOK" cho btnCancel

  • Lp trnh cho thit b di ng

    Trang 19

    Bi tp 6: Mc ch:

    - Thc hnh v hiu v RelativeLayout (tip tc)

    Yu cu: - Dng RelativeLayout, thit k giao din nh hnh bn di:

    Hng dn:

    Bi tp 7: Mc ch:

    - Kt hp nhiu loi Layout

    Yu cu: - Thit k giao din nh hnh bn di:

    Hng dn:

  • Lp trnh cho thit b di ng

    Trang 20

    Bi tp 8: Mc ch:

    - Thc hnh v hiu c cc kiu lp trnh s kin trong Android

    o Onclick in XML

    o Inline anonymous listener

    o Activity is listener

    o Listener in variable

    o Explicit listener class

    o View Subclassing

    Yu cu: - Thit k giao din nh hnh bn di v thc hin cc yu cu sau:

    - Mi ln click chut vo cc Button th s thc hin php ton tng ng: v d khi click

    chut vo Tng 2 s th kt qu trn l 113.

    - Ring nt Thot chng trnh: cho php ng chng trnh

    - Tng 2 s vit theo Onclick In XML

    - Hiu 2 s vit theo Inline anonymous listener

    - Tch 2 s vit theo Activity is listener

    - Thng 2 s vit theo Listener in variable

    - c s chung ln nht vit theo Explicit listener class

    - V Thot chng trnh vit theo View Subclassing

    Hng dn: - ly s a: EditText edita=(EditText)findViewById(R.id.editsoa);

    int a=Integer.parseInt(edita.getText()+"");

    - thot chng trnh gi hm: finish();

  • Lp trnh cho thit b di ng

    Trang 21

    Bi tp 9: Mc ch:

    - Thc hnh v cc kiu lp trnh s kin trong Android (tip tc)

    - Cng c thm k thut lp trnh s kin trong Android

    Yu cu: - Vit chng trnh chuyn i nhit CF. Thit k giao din v thc hin cc yu cu

    nh bn di:

    - Khi bm Convert To Celsius s chuyn i t FC

    - Khi bm Convert To Fahrenheit s chuyn i t CF

    - Khi bm nt Clear s xa trng ton b d liu trong EditText

    Hng dn: - Kt hp LinearLayout vertical v LinearLayout horizontal thit k giao din trn

    - Chn kiu lp trnh s kin ty thch

    - Cng thc:

    V d:

    Chuyn t 37C ti F : 37C x 9/5 + 32 = 98.6F

    Chuyn t 98.6F ti C : (98.6F - 32) x 5/9 = 37C

  • Lp trnh cho thit b di ng

    Trang 22

    Bi tp 10 (*): Mc ch:

    - Thc hnh v cc kiu lp trnh s kin trong Android (tip tc)

    - Cng c thm k thut lp trnh s kin trong Android

    - Cng c li Layout

    Yu cu: - Vit chng trnh my tnh b ti n gin, kt hp mt s kiu Layout thit k giao

    din nh hnh bn di:

    - Chng trnh ch cn thc hin php ton n (cha cn lng php ton)

    - Bm Delete : xa d liu hin hu trn EditText trn cng

    - Bm vo cc con shin th ln EditText

    - Bm vo php ton: +, -, *, / hin th ln EditText

    - Bm tip cc con s hin th ln EditText

    - Bm du = thc hin php ton

    Hng dn: - Kt hp TableLayout v LinearLayout (hoc ty thch)

    - Cc trn mn hnh chnh l cc Button, ch l thay i mu nn v mu ch.

    - Khuyn khch cc sinh vin kh gii hon thnh y chc nng ca ng dng ny

  • Lp trnh cho thit b di ng

    Trang 23

    Bi tp 11: Mc ch:

    - Thc hnh v hiu c Toast Notification

    Yu cu: - Vit ng dng Android kim tra Toast notification

    - Gii thch trong i s u tin ca Toast.makeText khi th s dng MainActivity.this,

    khi ch s dng this khng?

    Hng dn: - Toast toast=Toast.makeText(MainActivity.this, "Hello Toast!",

    Toast.LENGTH_SHORT) .show();

    - Toast.LENGTH_SHORT hin th 2 giy, Toast.LENGTH_LONG hin th 3.5 giy

    Bi tp 12: Mc ch:

    - Thc hnh v hiu c Alert Dialog

    Yu cu: - Vit chng trnh vi giao din nh hnh bn di v thc hin cc chc nng:

    - Khi ngi s dng bm nt ng nhp:

    o Nu ngi s dng checked vo Lu thng tin th Toast thng bo l cho mng

    bn ng nhp h thng, bn lu thng tin

    o Nu ngi s dng unchecked vo Lu thng tin th Toast thng bo l cho

    mng bn ng nhp h thng, bn khng lu thng tin

    - Khi ngi s dng bm nt Thot, chng trnh s hin th Aler Dialog nh bn di,

    chn Yes s ng ng dng.

    Hng dn:

    - Xem trong slide bi ging (Slide 62 x l giao din ngi dng)

  • Lp trnh cho thit b di ng

    Trang 24

    Bi tp 13: Mc ch:

    - Thc hnh v hiu c cc Control c bn trong Android:

    o TextView, EditText, Button

    Yu cu: - Vit chng trnh i nm Dng lch qua nm m lch:

    - EditText nm dng lch ch c nhp s >=1900

    - Khi bm nt Chuyn i, chng trnh s chuyn t nm dng lch qua nm m lch,

    kt qu s c hin th vo TextView mu vng.

    Hng dn: Nm m = Can + Chi; Can = Nm dng % 10 :

    Chi = Nm dng % 12 :

    String can,chi;

    switch(namduong%10){

    //ly can trong ny da vo bng s 1

    }

    switch(namduong%12){

    //ly chi trong ny da vo bng s 2

    }

    Ghp can v chi ta c nm m lch

  • Lp trnh cho thit b di ng

    Trang 25

    Bi tp 14: Mc ch:

    - Thc hnh v hiu c cc Control c bn trong Android:

    o TextView, EditText, Button, Checkbox, RadioButton

    Yu cu: - Thit k giao din nh hnh bn di v thc hin cc chc nng:

    - Tn ngi khng c trng v phi c t nht 3 k t

    - Chng minh nhn dn ch c nhp kiu s v phi c ng 9 ch s

    - Bng cp mc nh s chn l i hc

    - S thch phi chn t nht 1 chn la

    - Thng tin b sung c th trng

    - Khi bm gi thng tin, chng trnh s hin th ton b thng tin c nhn cho ngi s

    dng bit (dng Alert Dialog):

    Hng dn: - Dng RadioGroup x l bng cp.

    - Dng isChecked() kim tra RadioButton v CheckBox c c checked hay khng.

    - Chi tit xem slide 69, 72 phn X l giao din ngi dng.

  • Lp trnh cho thit b di ng

    Trang 26

    Bi tp 15: Mc ch:

    - Thc hnh v hiu c cc Control c bn trong Android:

    o TextView, EditText, Button, Checkbox, RadioButton, Image, ScrollView

    Yu cu: - Vit chng trnh tnh tin bn sch online, thit k giao din nh hnh bn di v thc

    hin cc chc nng theo yu cu (ch dng Scroll View v giao din c kch thc di

    hn chiu cao ca mn hnh):

    Dng chc nng ScrollView ln pha trn thy thm c dng tiu b che khut nh bn di:

    - Yu cu thc hin:

    o Khi bm nt Tnh Thnh Tin (Tnh TT) chng trnh s tnh thnh tin bit rng

    mi cun sch c n gi l 20000, nu l khch hng VIP th gim 10%

    o Khi bm nt Tip, chng trnh s lu thng tin ha n va tnh Thnh Tin vo

    danh sch, ng thi xa trng d liu trong ha n v cho focus ti EditText

    Tn khch hng

    o Khi bm nt Thng k, chng trnh s hin th thng tin vo mc Thng tin

    thng k: tng s KH, tng s KH VIP v tng doanh thu

    o Khi bm vo nt thot (dng ImageButton): hin th AlertDialog hi xem ngi

    s dng c chc chn mun thot hay khng?

    Hng dn: - Kt hp ScrollView ( ngoi cng), LinearLayout v TableLayout

    - Dng List hoc ArrayList lu li thng tin mi ln bm nt Tnh Thnh Tin, mc

    ch phc v cho chc nng thng k.

  • Lp trnh cho thit b di ng

    Trang 27

    Bi tp 16: Mc ch:

    - Thc hnh v hiu c cc control nng cao trong Android:

    o ListView

    - Hiu c cch s dng String-Array, ArrayAdapter

    Yu cu: - Thit k giao din nh hnh bn di:

    - Giao din gm 1 TextView v 1 ListView

    - Trong res/values/strings.xml to mt String-Array: cha mt s cc gi tr nh hnh trn

    - Khi ng dng c khi ng, n s t ng c cc gi tr trong String-Array v hin

    th ln ListView

    - Khi click chut vo tng phn t trn ListView, s hin th v tr v gi tr phn t c

    click vo TextView c mu xanh dng bn trn.

    Hng dn: - Trong hm onCreate ca Activity thit lp ArrayAdapter cho ListView

    - Chi tit xem slide 78,79,80 phn x l giao din ngi dng

    Bi tp 17: Mc ch:

    - Thc hnh v hiu c cc control nng cao trong Android:

    o ListView

    - Hiu c cch s dng ArrayList, ArrayAdapter

    Yu cu: - Thit k giao din nh yu cu:

  • Lp trnh cho thit b di ng

    Trang 28

    - Mi ln ngi s dng chn nt Nhp, chng trnh s lu d liu trong mc Nhp tn

    vo ArrayList ng thi cp nhp danh sch vo ListView

    - Khi chn tng phn t trong ListView, chng trnh s hin th v tr v gi tr ca phn

    t ang chn vo TextView mu xanh

    Hng dn: - S dng hm notifyDatasetChanged ca ArrayAdapter t ng cp nht li danh

    sch cho ListView khi ArrayList thay i d liu.

    - Chi tit xem slide 81, 82 phn x l giao din ngi dng

    Bi tp 18: Mc ch:

    - Thc hnh v hiu c cc control nng cao trong Android:

    o ListView

    - Hiu c cch s dng ListActivity, ArrayAdapter

    Yu cu: - Thit k giao din nh yu cu bn di (k tha t ListActivity thay v Activity):

  • Lp trnh cho thit b di ng

    Trang 29

    Hng dn: - K tha t ListActivity

    - t id cho ListView l @android:id/list Chnh l tn mc nh trong Android

    - Chi tit xem slide 83, 84, 85, 86 phn X l giao din

    Bi tp 19: Mc ch:

    - Thc hnh v hiu v cc control nng cao trong Android:

    o Hc cch to Custom ListView

    o Cch k tha ArrayAdapter

    Yu cu: - Hy xy dng ng dng Android nh hnh bn di, yu cu hiu chnh li ListView

    c th hin th theo mun ring

    - Mi phn t trong ListView s c 1 hnh nh v 1 ni dung, nu ni dung c s lng k

    t

  • Lp trnh cho thit b di ng

    Trang 30

    Yu cu: - Thit k ng dng nh mn hnh bn di:

    - Khi ng dng khi ng, Danh mc sn phm s hin th vo trong Spinner nh hnh

    - Mi ln chn vo danh mc trong Spinner, chng trnh s hin th danh sch sn phm

    vo ListView theo danh mc tng ng:

    - ng vi mi sn phm l in thoi s c mi hnh nh ring

    - Khi chn tng sn phm trong ListView, chng trnh s dng Toast hin th chi tit

    Hng dn: - p dng Custom Layout thit k cho ListView

    - Gi lp 2 ArrayList, ArrayList 1 cha danh sch Danh Mc Sn phm, ArrayList 2 cha

    danh sch sn phm theo danh mc

    - ng dng load t CSDL ln giao din cho phn hc k tip

  • Lp trnh cho thit b di ng

    Trang 31

    Bi tp 21 (*): Mc ch:

    - Thc hnh v hiu v cc control nng cao trong Android:

    o Hiu v s dng c AutoCompleTextView

    o Hiu v s dng c GridView, kt hp vi Spinner

    Yu cu: - Thit k giao din nm ngang nh hnh bn di v thc hin cc yu cu:

    - Khi khi ng chng trnh s load danh sch danh mc sn phm vo Spinner

    - Mi ln chn Danh mc sn phm, chng trnh s hin th danh sch sn phm ca danh

    mc ang chn vo GridView (xem hnh)

    - Khi ngi s dng nhp 1 tn sn phm mi vo AutoCompleteTextView v chn nt

    Nhp th chng trnh s a sn phm mi ny vo ng danh mc ang chn; cp nhp

    vo AutoComplete v ng thi cp nht vo GridView (2 ch cp nht)

    - Mi ln chn tng phn t trong GridView, chng trnh s dng Alert Dialog hin

    th thng tin chi tit cho tng phn t.

    Hng dn: - C 3 i tng: Spinner, AutoCompleteTextView, GridView u s dng ArrayAdapter

    - Nh vy mi ln c s thay i d liu (List cha d liu tng ng thay i) th ta gi

    hm notifyDatasetChanged ca ArrayAdapter tng ng cho mi i tng.

    - Thit lp android:completionThreshold="1" cho AutoCompleteTextView. Ty vo

    ca ngi lp trnh m ta thit lp cc gi tr khc nhau, S ny c ngha kch

    hot chc nng AutoComplete, nu thit lp l 1 th g 1 k t n s kch hot, nu thit

    lp l 3 th g 3 k t n s kch hot

    - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

    thit lp ng dng nm ngang in thoi.

  • Lp trnh cho thit b di ng

    Trang 32

    Bi tp 22 (*): Mc ch:

    - Thc hnh v hiu v cc control nng cao trong Android:

    o Hiu cch a hnh nh vo GridView, bit cch s dng BaseAdapter

    Yu cu: - Vit ng dng trnh din hnh nh nh sau (s dng GridView):

    - Khi chn tng hnh nh trong GridView th s m mt mn hnh mi hin th thng

    tin chi tit ca hnh ang chn (v d chn hnh ch Cu):

    - Chn nt Back tr v mn hnh chnh

    Hng dn: - Xem hng dn chi tit slide 120, 121, 122, 123, 124 phn x l giao din ngi dng

  • Lp trnh cho thit b di ng

    Trang 33

    Bi tp 23: Mc ch:

    - Thc hnh v hiu cc control nng cao trong Android:

    - Hiu v s dng c Time Selection:

    o AnalogClock

    o Chronometer

    o TimePickerDialog

    o DatePickerDialog

    Yu cu: - Vit chng trnh qun l mc tiu hon thnh cng vic hng tun: L do chng ta lm

    vic khng c quy c, khng nht qun, gp u lm , ang lm vic ny thy vic kia

    sy ra li nhy qua vic lm d cng vic c cha xong, khng theo quy trnh nh

    sn dn n kt thc mt ngy m cui cng khng hon thnh c vic g c.

    - Thit k giao din nh hnh bn di v thc hin mt s chc nng:

    - Khi chn nt Date s hin th DatePickerDialog cp nht Ngy hon thnh

    - Khi chn nt Time s hin th TimePickerDialog cp nht gi hon thnh

    - Khi chn nt Thm cng vic (Thm CV), chng trnh s cp nhp vo ListView bn

    di mn hnh

    Hng dn: - Xem hng dn cch s dng DatePickerDialog v TimePickerDialog slide 113, 114

    phn X l giao din ngi dng

  • Lp trnh cho thit b di ng

    Trang 34

    Bi tp 24: Mc ch:

    - Thc hnh v hiu cc control nng cao trong Android:

    o Hiu v s dng c TabSelector

    Yu cu: - Thit k ng dng nh yu cu bn di:

    - ng dng gm c 2 Tab: tab Login v tab Help

    - ng vi mi Tab s c giao din khc nhau, sinh vin t to giao din ty thch thao

    tc vi TabSelector

    Hng dn: - Xem Slide 128, 129, 130 phn X l giao din ngi dng

    Bi tp 25: Mc ch:

    - Thc hnh v hiu cc control nng cao trong Android:

    - Hiu v s dng c Menu, ContextMenu

    Yu cu: - Hiu chnh bi tp 23, thm 1 Menu v 1 ContextMenu nh sau:

    - Thit lp ContextMenu cho ListView (bm long time hin th ContextMenu): chn

    sa cho php sa cng vic, chn Xa cho php xa cng vic, v m s CV

    - Thit lp Menu cho ng dng (bm vo nt Menu ca emulator s hin th Menu): Xem

    cng vic hon thnh, cha hon thnh v xa ton b cng vic

    Hng dn: - Xem hng dn slide 133140 phn x l giao din ngi dng

  • Lp trnh cho thit b di ng

    Trang 35

    Bi tp 26 (*): Mc ch:

    - Thc hnh v hiu v Webkit:

    o Thao tc c vi Webkit Browser

    o Cc Browser Command

    o Cch ng k i tng trong Android vo JavaScript

    o Tng tc Javascript v Android

    Yu cu: - Xy dng ng dng tm v tr (dng d liu gi), cho php tng tc gia Android vi

    HTML (Java Script). Giao din mn hnh nh sau:

    - Khi chn nt Click to get location, chng trnh s ly thng s t Android v hin th

    ln giao din HTML

    - Khi chn nt Talking to Android, chng trnh s gi thng s trn HTML ti Android

    v Android dng Toast hin th nhng thng s ly c t HTML ny

    Hng dn:

    - Dng Microsoft Express Web hoc trnh son tho bt k thit k HTML nh trn

    - Ch ni dung tp tin HTML ch c cha tag html ngoi cng, tuyt i khng cha cc

    Tag l khc.

    - Ko th tp tin HTML vo th mc assets ca ng dng Android

    - Chi tit xem slide hng dn 161167 phn x l giao din ngi dng

    - Nh thit lp 3 thng s ny vo Manifest XML

  • Lp trnh cho thit b di ng

    Trang 36

    Bi tp 27: Mc ch:

    - Thc hnh v hiu c v Intent (phi lm ht bi tp ny, rt quan trng):

    o Explicit Intent

    o Implicit Intent

    o Cch ly kt qu qua li gia cc Activity thng qua Intent

    Yu cu: - Vit chng trnh qun l bi ht, thit k giao din nh hnh bn di:

    - Phi to Album trc khi vo chc nng qun l bi ht

    - Khi chn chc nng thm Album, chng trnh s xut hin mn hnh di y (ch

    m di dng Dialog):

    o Chn lu album ny lu, chn xa trng xa d liu va nhp, focus ti

    m.

    - Khi chn xem danh sch album, chng trnh s m mt mn hnh mi hin th

    danh sch Album to ch dng CustomLayout cho ListView:

  • Lp trnh cho thit b di ng

    Trang 37

    - Khi chn tng Album trong danh sch, s hin th mn hnh cho php chnh sa Album:

    o Chn Update cp nht li Album

    - Khi nhn Tht Lu (Long time) vo tng Album trong danh sch, chng trnh s hin

    th Alert Dialog hi xem c mun xa Album ny hay khng?

    - Chn C xa album mun xa, chn Khng tr v mn hnh xem danh sch

    - Khi chn chc nng qun l bi ht mn hnh chnh chng trnh s hin th:

    o Load danh sch album vo Spinner

    o S dng DatePickerDialog ch ngy ra a

    o Chn Thm bi ht a bi ht mi vo ListView bn di.

    Hng dn: - Xem hng dn s dng Intent, get result trong slide 170180; 191205 phn x l

    giao din ngi dng.

  • Lp trnh cho thit b di ng

    Trang 38

    Bi tp 28: Mc ch:

    - Thc hnh v hiu c v Intent:

    o Explicit Intent

    o Implicit Intent

    o Cch ly kt qu qua li gia cc Activity thng qua Intent

    Yu cu: - Vit chng trnh qun l nhn s nh bn di (s dng Context Menu hoc Menu):

    - Chn Chnh sa hiu chnh nhn vin ang chn trong ListView

    o Chn Lu cp nht

    - Chn Thm mi thm nhn vin mi:

    o Chn Lu thm mi

  • Lp trnh cho thit b di ng

    Trang 39

    - Khi chn Xa, chng trnh s hin th Alert Dialog xc nhn xem c xa hay khng?

    Hng dn: - Xem hng dn s dng Intent, get result trong slide 170180; 191205 phn x l

    giao din ngi dng.

    Bi tp 29: Mc ch:

    - Thc hnh v hiu v chm a im trong Android

    Yu cu: - Vit mt ng dng kim tra nu nh c 3 ngn tay ca ngi s dng lt trn mn hnh

    th chuyn mu nn sang Mu

    - Nu c 5 ngn tay ca ngi s dng lt trn mn hnh th m mt bi nhc bt k no

    (dng Implicit Intent).

    Hng dn: - Xem slide hng dn Multitouch 207212 phn x l giao din ngi dng

    Bi tp 30:

    Mc ch: - Thc hnh v hiu v a ngn ng trong Android

    Yu cu: - Vit mt ng dng cho php x l a ngn ng trong Android (ng dng bt k)

    Hng dn: - Xem hng dn a ngn ng 215218 phn x l giao din ngi dng

  • Lp trnh cho thit b di ng

    Trang 40

    Module 3: X l tp tin, lu trng thi, CSDL, Content Provider

    Ni dung kin thc thc hnh:

    - Thao tc vi cc tp tin trong Android: Internal Storage, External Storage v Cache files

    - Thc hnh v XML Parser: DOM, SAX

    - Thc hnh v lu trng thi ng dng: Share Preferences

    - Thc hnh v Sqlite: cch to/ xa CSDL, to bng, truy vn, thm, sa, xa d liu

    - Thc hnh v Content Provider: thao tc vi cc Content Provider c sn, cch to mi

    cc Content Provider

    Bi tp 1: Mc ch:

    - Thc hnh v hiu c c ch lu tp tin trong Android:

    o Internal Storage

    o External Storage

    o Cache files

    Yu cu: - Vit chng trnh cho php c / ghi mt TextFile bt k t ng dng:

    - Khi bm Write Data, chng trnh s lu ton b thng tin trong EditText xung tp tin

    - Khi bm Read Data, chng trnh s c thng tin t tp tin v hin th ln EditText

    - Ch th trn 2 trng hp: Internal v SD card, quan st ni lu tr tp tin trong File

    Explorer ca DDMS

    Hng dn: - Xem slide 8 , 9 phn x l tp tin

  • Lp trnh cho thit b di ng

    Trang 41

    Bi tp 2: Mc ch:

    - Thc hnh v hiu c c ch lu tp tin trong Android:

    o Internal Storage

    o External Storage

    o Cache files

    Yu cu: - Vit chng trnh cho php load ton b danh sch Cache files ln giao din, mi ln

    chn vo tng Cache s cho php c thng tin t cache. Chng trnh cn h tr chc

    nng Xa tng Cache v xa ton b Cache

    Hng dn: - S dng Intent m Activity xem chi tit ni dung ca tng cache chn trn ListView

    - S dng lnh sau ly ton b Cache:

    File cachDir=getCacheDir();

    File listCache[]=cachDir.listFiles();

  • Lp trnh cho thit b di ng

    Trang 42

    Bi tp 3: Mc ch:

    - Thc hnh v hiu c XML Parser:

    o K thut dng DOM

    o K thut dng SAX

    Yu cu: - Cho cu trc XML sau:

    - Hy dng 2 k thut DOM v SAX (vit 2 cch ) thc hin c file XML trn v a

    ln giao din nh hnh bn di:

    - Chng trnh s c danh sch Title vo Spinner (ch khng c trng lp)

    - Chn Title no th s hin th danh sach nhn vin tng ng vo ListView theo Title .

    Hng dn: - Xem k thut DOM, SAX trong slide 2733 phn x l tp tin

  • Lp trnh cho thit b di ng

    Trang 43

    Bi tp 4: Mc ch:

    - Thc hnh v hiu c Share Preferences:

    o Cch to v s dng Share Preferences

    o Cch s dng Share Preferences Change listener (to cc Settings Activity)

    Yu cu: - Vit ng dng vi giao din ging hnh di y:

    - Yu cu thc hin:

    o Khi ngi s dng chn ng nhp th ng ng dng ny li. Ch nu

    checkbox Lu thng tin c checked th chng trnh s lu ton b thng tin

    (user, password). Nu checked =false th xa ton b thng tin lu trc .

    o Khi khi ng li ng dng, chng trnh s tm xem thng tin c c lu hay

    khng, nu c lu th hin th li ln mn hnh cho ngi s dng

    Hng dn: - Xem slide hng dn 38 , 39 phn x l tp tin

  • Lp trnh cho thit b di ng

    Trang 44

    Bi tp 5: Mc ch:

    - Thc hnh v hiu c Share Preferences:

    o Cch to v s dng Share Preferences

    o Cch s dng Share Preferences Change listener (to cc Settings Activity)

    Yu cu: - Vit ng dng dng PreferenceActivity c giao din nh bn di:

    - Khi bm Start my Setting s hin th mn hnh Setting:

    o Nu checked mn hnh chnh s c mu

    o Nu unchecked mn hnh chnh s c mu xanh

    - Ch l mn hnh chnh phi ng k Share Preferences Listener th mi t ng bt

    c nhng s thay i trong Setting Activity

    Hng dn: - Xem hng dn trong slide 4853 phn x l tp tin.

  • Lp trnh cho thit b di ng

    Trang 45

    Bi tp 6: Mc ch:

    - Thc hnh v hiu v SQLite

    o To c CSDL

    o Thao tc vi bng d liu: thm, sa , xa

    o V mt s tnh nng khc c cung cp bi SQLite

    Yu cu: - Vit chng trnh qun l sch c m t nh sau:

    o Mt tc gi s c nhiu cun sch, thng tin tc gi gm: m , tn

    o Mi cun sch thuc v mt nh tc gi no , thng tin mi cun sch gm: m

    sch, tn sch, ngy xut bn

    o Hy chn kiu d liu hp l to c s d liu (s dng SQLite) cho ng vi

    m t trn

    - Thit k giao din nh hnh bn di:

    - Phi to Tc gi trc khi vo chc nng qun l Sch

    - Khi chn chc nng thm Tc gi, chng trnh s xut hin mn hnh di y (ch

    m di dng Dialog):

    o Chn Lu tc gi lu, chn xa trng xa d liu va nhp, focus ti m.

    - Khi chn xem danh sch Tc gi, chng trnh s m mt mn hnh mi hin th

    danh sch Tc gi to ch dng CustomLayout cho ListView:

  • Lp trnh cho thit b di ng

    Trang 46

    - Khi chn tng tc gi trong danh sch, s hin th mn hnh cho php chnh sa tc gi:

    o Chn Update cp nht li Tc gi

    - Khi nhn Tht Lu (Long time) vo tng tc gi trong danh sch, chng trnh s hin th

    Alert Dialog hi xem c mun xa Tc gi ny hay khng?

    o Chn C xa tc gi hin ti,

    o Chn Khng tr v mn hnh xem danh sch

  • Lp trnh cho thit b di ng

    Trang 47

    - Khi chn chc nng qun l sch mn hnh chnh chng trnh s hin th:

    o Load danh sch Tc gi vo Spinner

    o S dng DatePickerDialog ch ngy xut bn

    o Chn Thm sch lu vo CSDL ng vi tc gi chn trong Spinner, ng thi

    cp nhp vo ListView bn di.

    Hng dn: - Xem hng dn cch s dung SQLite trong slide 5468 phn x l tp tin

    Bi tp 7: Mc ch:

    - Thc hnh v hiu v Content Provider:

    o S dng c Built in Content Provier

    o T xy dng c Content Provider ring

    Yu cu: - Vit chng trnh s dng mt s Content Provider ph bin, thit k giao din ging

    nh hnh bn di:

  • Lp trnh cho thit b di ng

    Trang 48

    - Khi chn Show All Contact, chng trnh s hin th danh sch cc Contact c lu

    trong in thoi:

    - Tng t nh vy vit chng trnh s dng Content Provider c sn s dng Call

    Log, Media Store, Book Marks

    Hng dn: - Xem hng dn chi tit slide 7380 phn x l tp tin

    Bi tp 8 (***): Mc ch:

    - Thc hnh v hiu v Content Provider:

    o S dng c Built in Content Provier

    o T xy dng c Content Provider ring

    Yu cu: - T xy dng mt Content Provider cho php tng tc vi Movie Object, thit k giao

    din nh bn di:

    Hng dn:

    - Lm li slide hng dn t 8397, dnh cho sinh vin kh gii

  • Lp trnh cho thit b di ng

    Trang 49

    Module 4: X l a tin trnh v dch v

    Ni dung kin thc thc hnh:

    - Thc hnh v a tin trnh: Cch thc lp trnh vi Handler class v AsyncTask

    - Thc hnh v Intent Filter

    - Thc hnh v BroadCast Receiver: Cch ng k broadcast Receiver trong coding v

    trong Manifest XML, thao tc vi mt s chc nng trong Broadcast Receiver

    - Thc hnh v Android Service: cch thc giao tip vi Service thng qua Broadcast,

    Binder, Messenger.

    - Thc hnh v System Service: Pending Intent, Alarm Manager, NotificationManager

    - Thc hnh v .Net Webservice: Cch to .net webservice, cch cu hnh IIS, cch thc

    tng tc d liu gia Android v .Net Webservice: KSOAP Api

    Bi 1:

    Mc ch:

    - Thc hnh v hiu c k thut lp trnh a tin trnh

    o Cch tip cn bng Handler

    o Cch tip cn bng AsyncTask

    Yu cu:

    - Vit chng trnh sau di dng a tin trnh:

    - Yu cu thc hin vi nhiu cch (thc hin bi ny vi 3 cch khc nhau):

    o Handler using sendMessage

    o Handler using post

    o Dng AsyncTask

    - Khi bm Start chng trnh s cp nht thng s t 1% 100% ng thi ProgressBar

    cng c thc thi theo (xem hnh trn)

    - Khi t 100% chng trnh t ng ng.

    - Th c gng chn nt Start tht nhiu ln, quan st v gii thch hin tng sy ra.

    Hng dn: - Bi qu tm thng, t lm.

  • Lp trnh cho thit b di ng

    Trang 50

    Bi tp 2: Mc ch:

    - Thc hnh v hiu c k thut lp trnh a tin trnh

    o Cch tip cn bng Handler

    o Cch tip cn bng AsyncTask

    Yu cu: - Vit chng trnh cho php v cc Button t ng lc Runtime:

    - Yu cu thc hin vi nhiu cch (thc hin bi ny vi 3 cch khc nhau):

    o Handler using sendMessage

    o Handler using post

    o Dng AsyncTask

    - Khi ngi s dng nhp s lng cc Button cn v vo EditText v chn chc nng

    Draw Button th c 100 miliseconds mi Button s c v ra (xem hnh), ng thi vit

    s kin ng cho cc Button ny. Mi ln chn cc Button mi v th dng Toast Thng

    bo l chn hay l.

    - Ch nn dng ScrollView cha cc Button v c th s lng Button ln, vt qu

    chiu di ca mn hnh

    Hng dn:

    - llbutton l mt View no (do logic lp trnh ca mi ngi chn)

    - gn s kin ging nh cch vit bnh thng

  • Lp trnh cho thit b di ng

    Trang 51

    Bi tp 3 (*): Mc ch:

    - Thc hnh v hiu c k thut lp trnh a tin trnh

    o Cch tip cn bng Handler

    o Cch tip cn bng AsyncTask

    o Kt hp nhun nhuyn gia Handler v AsyncTask

    Yu cu: - Kt hp Handler v AsyncTask, vit chng trnh nh hnh di y:

    o Mn hnh c chia ra lm 2 Layout (suy ngh cch dng Layout cho ti u),

    o Layout 1 v cc Button vi cc s ngu nhin

    o Layout 2 v cc Button l cc s nguyn t (ch rng cc s nguyn t ny l kt

    qu sau khi AsyncTask thc hin cng vic v cc Button ngu nhin Layout 1)

    Hng dn:

    - Xem hng dn slide 3137 phn x l a tin trnh v dch v

  • Lp trnh cho thit b di ng

    Trang 52

    Bi tp 4: Mc ch:

    - Thc hnh v hiu v Intent filter, Broadcast Receiver

    o Cch khai bo v s dng Intent filter

    o Cch ng k/ g b Broadcast Receiver

    o Cch x l Broadcast Receiver trong coding

    o Cch x l Broadcast Receiver trong Manifest XML

    Yu cu: - Vit ng dng Android x l tin nhn rc.

    - Hin nay rt nhiu tin nhn qung co gi v ti v, ci Al ca bn phi nhn rt nhiu

    tin nhn nh th gy phin h v mt thi gian cho bn.

    - Hy vit chng trnh gii quyt vn ny, yu cu nh sau:

    o Chng trnh c giao din thm, sa, xa cc u s m bn cho l u s rc.

    Nh vy nn dng SQLite hoc XML lu cc u s rc.

    o Chng trnh phi t ng nhn tin nhn v pht hin ra c tin nhn no l gi

    i t cc u s rc .

    o Nu pht hin ra l u s rc th xa n khi inbox ca messaging ng thi

    pht ra Audio l y l tin nhn rc, b x ngi s dng khng phi m

    in thoi ln xem.

    - Yu cu vit theo 2 cch (tc l bi tp ny lm thnh 2 Project khc nhau):

    o ng k Broadcast Receiver nhn tin nhn ti trong coding

    o ng k Broadcast Receiver nhn tin nhn ti trong Manifest XML

    - Sau khi lm xong theo 2 cch trn, hy so snh s khc bit gia chng. V kt lun

    chng ta nn chn cch no?

    - Chng trnh phi ci t v chy c trn in thoi Android thit.

    - Khi nhn tht lu vo 1 u s trong ListView th s ny s t ng Remove khi CSDL

  • Lp trnh cho thit b di ng

    Trang 53

    Hng dn: - Phi s dng 2 permission sau thao tc vi SMS, Audio s xem trong Multimedia

    - ng k BroadCast Receiver trong Manifest:

    - Vi MySmsReceiver l class ta to ra k tha t BroadcastReceiver

    - Cch broadcast mt SMS hng dn trong Slide 5260 phn x l a tin trnh

    - m mt tp tin Audio, xem hng dn trong Multimedia APIs (phn k tip)

    - Cch xa mt tin nhn trong in thoi nh sau (da vo y truy vn danh sch u

    s rc trong CSDL x l), y Ti a ra 2 v d v xa tin nhn:

    o Xa ton b tin nhn do 1 u s no gi ti (tc l xa lun trong inbox c)

    private void XoaToanBoSms(Context con,

    SmsMessage[] msgs,

    String phoneNumber)

    {

    try

    {

    for (int i=0; i

  • Lp trnh cho thit b di ng

    Trang 54

    o Xa tin nhn mi gi ti tc th do 1 u s no gi ti (ch xa tin mi nht)

    private void XoaSmsMoiNhat(Context con,

    SmsMessage[] msgs,

    String phoneNumber)

    {

    try {

    for (int i=0; i

  • Lp trnh cho thit b di ng

    Trang 55

    Bi tp 5: Mc ch:

    - Thc hnh v hiu c Android Service

    o Hiu c cch to v khi ng Service

    o Hiu c cch giao tip vi service thng qua:

    Broadcast

    Binder

    Messenger

    Yu cu: - Bi tp ny vit theo 3 cch: Broadcast, Binder, Messenger (nn to 3 Project ring)

    - Hy vit mt dch v cho php thc hin 2 cng vic:

    o Tr v danh sch cc tin nhn trong inbox (c 100 miliseconds tr v 1 tin nhn)

    o Tr v danh sch cc Contacts trong in thoi (tr v 1 ln ht cc danh b)

    - Nh vy service phi kt hp vi a tin trnh gi thng tin cho ng dng ( y Ti

    yu cu dng AsyncTask)

    - Ci t v chy c trn in thoi Android thit

    - Thit k mt ng dng triu gi dch v trn, xem giao din bn di:

    Hng dn:

    - Xem slide hng dn 7681 phn x l a tin trnh v dch v

    - Uri uri=Uri.parse("content://sms/inbox");uri c tin nhn SMS trong inbox

    - Uri uri=Uri.parse("content://contacts/people");uri c danh b trong in thoi

  • Lp trnh cho thit b di ng

    Trang 56

    Bi tp 6: Mc ch:

    - Thc hnh v hiu c Android Service

    o Hiu c cch to v khi ng Service

    o Hiu c cch giao tip vi service thng qua:

    Broadcast

    Binder

    Messenger

    Yu cu: - Nng cp bi tp 5 trn:

    - Yu cu Service cung cp thm 2 chc nng

    o Tr v danh sch cc tin nhn trong inbox (c 100 miliseconds tr v 1 tin nhn)

    o Tr v danh sch cc Contacts trong in thoi (tr v 1 ln ht cc danh b)

    o Xa mt tin nhn trong inbox

    o Xa mt contact trong danh b

    - Yu cu i vi giao din:

    o Khi bm tht lu vo mt tin nhn th yu cu Service xa tin nhn ny

    o Khi bm tht lu vo 1 contact th yu cu Service xa contact ny

    Hng dn: - Lm c bi 5 th phi lm c bi 6.

    Bi tp 7: Mc ch:

    - Thc hnh v hiu c System Android Service

    o Hiu c PendingIntent

    o To v s dng c AlarmManager (dng getBroadCast v getService)

    o To v s dng c NotificationManager

    Yu cu: - Dng AlarmManager vit chng trnh nhc nh ngy sinh nht.

    o Hin nay v phi vt ln vi mi lo toan cuc sng, lm cho con ngi chng ta

    lc no cng bn rn, chng ta lc no cng ch c cng vic v cng vic. Chng

    ta qun i nhng ngy k nim quan trng ca b m, anh em, bn b, i tc.

    in thoi th sn trong ngi nhng t gi bt my ln hi han mt ai , hay l

    ch nhn nhng li chc sinh nht m thm ti ngi thn cng khng nh. N

    v tnh lm cho chng ta tch bit vi cuc sng m p hng ngy, n lm cho

    chng ta tr ln kh khan ti mc v tnh.

  • Lp trnh cho thit b di ng

    Trang 57

    o V l do ny, yu cu cc sinh vin vit phn mm nhc nh ngy sinh nht.

    Chng trnh phi c giao din cho php nhp vo danh sch cc Ni dung nhc

    nh vi nhng ngy nhc quy nh trn giao din.

    o Khi n ng ngy , gi th in thoi phi t ng thng bo. Hnh thc

    thng bo ty sinh vin chn la, c th:

    M mt audio ni ti ngy sinh nht

    Hoc t ng m mt Activity ln mn hnh thng bo l ti ngy sinh

    nht

    Hoc hnh thc no ty

    - Chng trnh phi ci t v chy c trn in thoi Android thit

    - Xem giao din bn di:

    - Khi ng ti ngy sinh nht, Ti cho hin th Activity vi mn hnh mu nh trn,

    sinh vin c th ty chn hnh thc Nhc Nh khc

    - S dng DatePickerDialog nhp Birthday

    - Khi chn Thm nhc nh s a thng tin xung ListView

    - Khi nhn rt lu vo 1 nhc nh no trong ListView th xa n ra khi ListView

    Hng dn: - Xem slide hng dn s dng AlarmManager : slide 8390

    - S dng phng thc set ca class Calendar thit lp thi gian active

    cal.set(2013, 2, 25, 0, 0, 0);//nm, thng, ngy, gi, pht, giy

  • Lp trnh cho thit b di ng

    Trang 58

    Bi tp 8: Mc ch:

    - Thc hnh v hiu c System Android Service

    o Hiu c PendingIntent

    o To v s dng c AlarmManager (dng getBroadCast v getService)

    o To v s dng c NotificationManager

    Yu cu: - Dng NotificationManager vit ng dng:

    - Hy vit ng dng n gian c giao din nh bn di:

    - Khi chn Start, ng dng s hin th Notification thng bo nh bn di

    - Ko Notification xung, v chn n, mn hnh tm kim Google s xut hin nh di:

    - Chn Stop ngng Notification

    Hng dn: - Xem hng dn slide 9799

  • Lp trnh cho thit b di ng

    Trang 59

    Bi tp 9 (*): Mc ch:

    - Thc hnh v hiu c cch tng tc d liu gia Android v .Net Webservice

    o Bit to .Net Webservice

    o Bit cch cu hnh IIS

    o Tng tc Android vi .Net Webservice thng qua KSOAP API

    Yu cu: - Hy xy dng .Net Webservice vi m t sau (CSDL l Sqlserver):

    - Webservice ny s cung cp cc dch v:

    o m tng s danh mc

    o Tr v danh sch cc danh mc

    o Thm danh mc vo CSDL

    o Xa danh mc khi CSDL

    o Tr v danh sch cc sn phm theo mt m danh mc no

    o Tnh thnh tin, vi 2 i s truyn vo l s lng v n gi

    o V mt s dch v pht sinh khc khi lm

    - Cu hnh IIS chy Webservice ny

    - Xy dng phn mm Android tng tc vi Webservice trn thng qua KSOAP API:

  • Lp trnh cho thit b di ng

    Trang 60

    - Khi chn Insert Cate: chng trnh s gi dch v thm 1 danh mc vo CSDL (ch ch

    c nhp khng qu 10 danh mc)

    - Khi chn Show List Catalog: chng trnh s hin th ton b danh sch danh mc vo

    ListView nh hnh.

    - Khi chn tht lu mt danh mc no trn ListView th cho php xa danh mc ny,

    ch l nu kim tra thy danh mc c sn phm ri th dng AlertDialog hi xem

    ngi s dng bit v hi xem h c chc chn mun xa hay khng.

    Hng dn: - Xem slide hng dn 107114

    - Bi tp ny rt quan trng, khi i lm thc t chng ta hay phi tng tc ti mt

    WebService no

    -

  • Lp trnh cho thit b di ng

    Trang 61

    Bi tp 10: Mc ch:

    - Thc hnh v bit c cch tng tc gia thit b Android vi My ch (Laptop)

    o Thit lp c kt ni gia in thoi v Laptop

    o Tng tc Android vi .Net Webservice thng qua KSOAP API

    Yu cu: - Yu cu tng tc c gia thit b Android thit vi Labtop

    Hng dn:

    - T trin khai:

    o Gi dng chc nng Portable wifi hotspot ca thit b

    o Hoc mt s phn mm gip Laptop pht WIFI (Win7, Win8)

    o Ch cn xc nh c IP ca my Laptop, kt ni theo IP ny

  • Lp trnh cho thit b di ng

    Trang 62

    Module 5: Networking APIs v Multimedia APIs

    Ni dung kin thc thc hnh:

    - Thc hnh cch x l Strict Mode: Dng permitAll() v AsyncTask

    - Thc hnh truy sut d liu thng qua giao thc HTTP: c Text File, c Binary File,

    cch ly Network Status

    - Thc hnh v Camera: cch x l hnh nh t Camera, thao tc vi cc Parameters, cch

    thc Zoomin, cch thc chia s hnh nh, thit lp mn hnh nn t Camera

    - Thc hnh v Video: Cch thc lu tr Video, cch play Video, lm vic vi nhn dng

    khun mt

    - Thc hnh v Audio: Cch thc lu tr audio, cch play audio, cch tm kim, chia s

    audio v thit lp nhc chung in thoi.

    - Nu my khng c internet th t cu hnh IIS local s dng website bnh thng

    Bi 1:

    Mc ch:

    - Thc hnh v hiu c cch c 1 Text file t internet

    o Bit x l Strict mode

    permitAll()

    AsyncTask

    Phn bit c s khc bit gia 2 cch ny, nn chn cch no

    o S dng c mt s class h tr c Text file t internet

    Yu cu: - Vit chng trnh cho php c mt Text file (URL path), giao din nh hnh bn di:

    - Cch 1- Kt ni trong Main Thread dng permitAll()

    - Cch 2- Kt ni mt Thread khc (dng AsyncTask)

    - Gii thch s khc bit gia 2 cch v kt lun nn s dng cch no

    Hng dn: - Xem slide hng dn 1012 phn Networking APIs v Multimedia APIs

  • Lp trnh cho thit b di ng

    Trang 63

    Bi tp 2: Mc ch:

    - Thc hnh v hiu c cch c 1 Binary file t internet

    o Bit x l Strict mode

    permitAll()

    AsyncTask

    Phn bit c s khc bit gia 2 cch ny, nn chn cch no

    o S dng c mt s class h tr c Binary file t internet

    Yu cu: - Vit ng dng cho php hin th mt hnh nh bt k t internet nh sau:

    - Yu cu dng AsyncTask load hnh nh v in thoi

    Hng dn: - Xem slide hng dn t 1416 phn Networking APIs v Multimedia APIs

    Bi tp 3: Mc ch:

    - Hiu thm cch c 1 Binary file t internet

    Yu cu: - Ci tin bi tp 2 bng cch thm 1 Progressbar load hnh nh v, v bi tp 2 thng

    gy ra tnh trng ging nh my khi m tp tin qu nng hoc internet chm

    Hng dn:

  • Lp trnh cho thit b di ng

    Trang 64

    Bi tp 4: Mc ch:

    - Thc hnh v hiu c cch kim tra trng thi mng ca thit b Android:

    o Hiu v s dng c ConnectivityManager

    Yu cu: - Vit chng trnh cho php kim tra tnh trng mng ca thit b di ng Android, giao

    din nh hnh bn di:

    - Yu cu dng AsyncTask

    Hng dn: - Xem slide hng dn 1821 phn Networking APIs v Multimedia APIs

    - ng dng bi tp ny sa li bi tp 1, 2, 3, . Kim tra nu my cha c Wifi hoc 3G

    th yu cu m Wifi hoc ng k 3G trc khi thc hin kt ni internet.

    Bi tp 5: Mc ch:

    - Thc hnh v hiu v Camera:

    o Cch chp hnh nh t Camera

    o Cch s dng Camera Parameter

    o Chia s hnh nh

    o Thit lp mn hnh in thoi t hnh nh trong Camera

    - Khng th c trn emulator, phi th trn in thoi Android thit

    Yu cu: - Vit chng trnh cho php kch hot Camera v chp mt hnh nh t Camera ri lu

    vo SD Card, xem giao din minh ha:

  • Lp trnh cho thit b di ng

    Trang 65

    - Khi chn View Camera, s cho php kch hot Camera

    - Khi chn take Photo s cho php chp hnh nh hin ti trong Camera v lu vo th.

    Hng dn: - Xem slide hng dn 2734 phn Networking APIs v Multimedia APIs

    Bi tp 6 (*): Mc ch:

    - Thc hnh v hiu v Camera:

    o Cch chp hnh nh t Camera

    o Cch s dng Camera Parameter

    o Chia s hnh nh

    o Thit lp mn hnh in thoi t hnh nh trong Camera

    - Khng th c trn emulator, phi th trn in thoi Android thit

    Yu cu: - Ci tin bi tp 5, thm cc chc nng :

    o Zoom in, Zoom out

    o Xoay Camera

    o Chia s hnh nh

    o Thit lp mn hnh nn

    o Chc nng bt / tt n Flash (thay cho n Pin khi bui ti Cp in)

    - Giao din sinh vin t sng to sao cho d s dng

    Hng dn: - Xem cch to n flash trong Android, da vo y a vo bi tp 6.

  • Lp trnh cho thit b di ng

    Trang 66

    - Trong Manifest XML cu hnh permission:

    - Coding trong Activity:

    public class MainActivity extends Activity {

    //Button bt n Flash Button btnflashlight;

    //Bin c kim tr n Flash ang bt hay tt private boolean isFlashOn = false;

    //to i tng camera truy sut Flash light private Camera camera;

    //Parameter thit lp cho camera private Parameters params;

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    btnflashlight=(Button)

    findViewById(R.id.btnturnonoroffflash);

    btnflashlight.setOnClickListener(new

    View.OnClickListener() {

    public void onClick(View arg0) {

    doTouchtoOn();

    }

    });

    }

    public void doTouchtoOn()

    {

    //Nu n flash ang m if (isFlashOn) {

    //Thit lp flashmode off cho parameter params.setFlashMode(Parameters.FLASH_MODE_OFF);

    //thit lp parameter cho camera camera.setParameters(params);

    //gn c kim tra bng flase

  • Lp trnh cho thit b di ng

    Trang 67

    isFlashOn = false;

    //Thit lp ch cho button l Bt n btnflashlight.setText("Bt n"); }

    //Nu n flash ang else {

    //thit lp flashmode on cho parameter params.setFlashMode(Parameters.FLASH_MODE_TORCH);

    //thit lp parameter cho camera camera.setParameters(params);

    //gn c kim tra bng true isFlashOn = true;

    //Thit lp ch cho Button l Tt n btnflashlight.setText("Tt n"); }

    }

    protected void onResume() {

    super.onResume();

    PackageManager pm = getPackageManager();

    if(!pm.hasSystemFeature

    (PackageManager.FEATURE_CAMERA)) {

    Toast.makeText(getApplicationContext(),

    "My khng c Camera!",

    Toast.LENGTH_SHORT).show();

    btnflashlight.setEnabled(false);

    return;

    }

    camera = Camera.open();

    if(camera!=null)

    params = camera.getParameters();

    }

    protected void onStop() {

    super.onStop();

    if (camera != null) {

    camera.release();

    }

    }

    }

  • Lp trnh cho thit b di ng

    Trang 68

    Bi tp 7: Mc ch:

    - Thc hnh v hiu v Video

    o Cch ghi Video

    o Cch chi Video

    o Bit chc nng nhn din khun mt trong Android

    Yu cu: - Vit ng dng cho php ghi v m Video, xem giao din:

    - Khi chn Start Recording Video, chng trnh khi ng MediaRecord ln SurfaceView

    v t ng quay phim lu vo SD Card

    - Khi chn Stop th s ngng quay phim v m li phim va c ghi theo 2 cch:

    o Dng Implicit Intent m

    o Dng VideoView, MediaController m

    Hng dn: - Xem slide hng dn 4148 phn Networking APIs v Multimedia APIs

    - Trong Manifest thm cc permission:

  • Lp trnh cho thit b di ng

    Trang 69

    Bi tp 8: Mc ch:

    - Thc hnh v hiu v Audio

    o Cch ghi Audio

    o Cch m Audio

    o Cch tm kim Audio

    o Cch thit lp nhc chung in thoi

    Yu cu: - Hy vit chng trnh thc hin cc chc nng sau:

    o Cho php ghi m cuc ni chuyn (lu vo SD Card)

    o Cho php m cc tp tin ghi m

    o H tr chc nng tm kim theo ngy, theo tn tp tin

    o Cho php ly 1 tp tin ghi m no lm nhc chung in thoi

    - Giao din sinh vin t thit k sao cho d s dng

    - Yu cu ci t v chy c trn in thoi Android thit

    Hng dn: - Xem slide hng dn 5160 phn Networking APIs v MultiMedia APIs

    Bi tp 9 (*): Mc ch:

    - Tng hp chc nng trong Networking v MultiMedia

    Yu cu: - Hy gi lp chng trnh Music Player ca Android

    o Cho php thc thi c cc tp tin Audio, Video

    o Thc thi c cc tp tin Audio, Video qua mng internet

    o V mt s tnh nng cn thit khc

    Hng dn: - Xem cch thit k chng trnh Music Player ca Android

    - Tm kim trn mng

    - Dnh cho cc sinh vin kh gii

  • Lp trnh cho thit b di ng

    Trang 70

    Module 6: Telephony APIs v Location Base Service APIs

    Ni dung kin thc thc hnh:

    - Thc hnh v cc tin ch ca Telephony APIs: Kim tra Phone State, Service State, lm

    vic vi Phone Number

    - Thc hnh v SMS: Cch cp quyn nhn v gi SMS, cch gi/nhn SMS, cch c

    cc tin nhn trong Inbox, ng k BroadCast Receiver thao tc vi cc SMS

    - Thc hnh v cch to cuc gi, nhn cuc gi: cch cp quyn, s dng

    ACTION_CALL, ACTION_DIAL, ACTION_ANSWER, ng k BroadCast Receiver

    tng tc vi cc cuc gi n.

    - Thc hnh v Call logs: Xem lch s cuc gi, xa lch s cuc gi

    - Thc hnh v LBS APIs: Tm hiu GPS, Geocoding v Mapping location, thc hnh

    Mapping Intent v Mapping View

    Bi 1:

    Mc ch:

    - Thc hnh v hiu v Telephony APIs:

    o Cch gi mt tin nhn SMS

    o Cch nhn mt tin nhn SMS

    o Cch thao tc vi tin nhn

    Yu cu: - Hy vit ng dng thay th cho chng trnh Messaging ca Android:

    o Cho php son tho v gi tin nhn

    o Cho php nhn tin nhn

    o Cho php thao tc tin nhn:

    Xa tin nhn

    Tm kim tin nhn

    Sp xp tin nhn theo s in thoi, theo ngy gi, theo ngy nhn

    - Ch chng trnh ch cn lu cc thng s sau ca mi tin nhn:

    o a ch gi n

    o Ni dung gi n

    o Thi gian gi n

    o Ni dung gi i

    o Thi gian gi i

    o (cc thng s khc khng cn lu)

    - Dng SQLite lu tr thng tin ca mt tin nhn nh m t trn:

    o Bng tin gi i (m t ng, s gi i, ni dung gi i, thi gian gi i)

    o Bng tin nhn c (m t ng, s gi n, ni dung gi n, thi gian gi n)

  • Lp trnh cho thit b di ng

    Trang 71

    - Chng trnh nn ng k BroadCast Receiver trong Manifest XML t ng nhn cc

    tin nhn gi n v lu vo c s d liu (cho d ng dng b tt)

    - Xem giao din minh ha (dng Tabselector v include cc Layout vo ng v tr):

    o C 4 tab nh trn

    o Chn nt ly danh b hoc t nhp s vo EditText

    o Khi chn tab no th x l theo tab , sinh vin hy thit k Layout ph hp.

    Hng dn: - Hc cch gi 1 tin nhn slide 1315 phn Telephony APIs v LBS APIs

    - Hc cch nhn 1 tin nhn slide 1619 ch ng k BroadCast Receiver trong Manifest

    - Cch xa : xem li Sqlite cch xa nh th no

    - Cch tm kim: ngh cch tm kim hp l

    - Cch sp xp: xem Sqlite sp xp nh th no, nn dng ContextMenu gi lnh.

    - Ch l CSDL ny c lp vi Messaging ca Android, ta thao tc SMS (xa, tm kim,

    sp xp) u nm trn Sqlite do ta to, khng c ng chm ti SMS ca Android.

    Tc l khi c 1 tin nhn bt k no gi ti th d nhin Tin nhn ny s c t ng

    lu vo 2 ni:

    o l Inbox thc t ca Android (Ta khng lin quan, t Android lm)

    o v Sqlite m chng trnh chng ta to rata thao tc trn ci ny

    - Cc tin gi i chng trnh ch lu khi ngi s dng dng phn mm ny gi tin

    nhn, cn gi bng Messaging ca Android th khng lin quan.

  • Lp trnh cho thit b di ng

    Trang 72

    Bi tp 2: Mc ch:

    - Thc hnh v hiu v Telephony APIs:

    o X l cc trng thi ca in thoi (idle, in use, ringing)

    o Cch to mt cuc gi i

    o Cch nhn mt cuc gi ti

    Yu cu: - Vit chng trnh qun l Blacklist

    - Thit k giao din ph hp: cho php thm, xa, sa danh Blacklist

    - Dng Sqlite lu danh sch Blacklist

    - Khi no c cuc gi n nu kim tra s gi n c tn ti trong black list th tin hnh

    hy cuc gi (nu c), cn khng th xut hin mt Activity thng bo.

    Hng dn: - Xem hng dn x l cuc gi slide 2225 phn Telephony APIs v LBS APIs

    Bi tp 3: Mc ch:

    - Thc hnh v hiu v Telephony APIs:

    o Thao tc vi Call log : xem, xa.

    Yu cu: - Vit chng trnh cho php qun l Call log

    - Thit k giao din cho php xem danh sch Call log, cho php xa call log:

    - Khi m chng trnh s t ng c danh sch call log vo ListView nh trn

    - ContextMenu c 2 item: Xa call log ang chn v Xa ton b Call log, mi thao tc

    u dng AlertDialog xc nhn xem ngi dng c mun xa hay khng.

    Hng dn: - T lm

  • Lp trnh cho thit b di ng

    Trang 73

    Bi tp 4 (*): Mc ch:

    - Thc hnh v hiu v Location Base Service APIs

    o Bit Android Google API

    o Hiu v s dng Geocoding location

    o Hiu v s dng Mapping Location: Mapping Intent, Mapping View

    Yu cu: - Cng ty Bitis cn vit mt ng dng Android nh sau:

    - Chng trnh cho php xem danh sch sn phm ca cng ty, cng nh cc chnh sch

    khuyn mi, cc thng tin v sn phm mi. (Cng ty s cung cp 1 .Net Webservice

    cho php ng dng Android xem danh sch sn phm, xem thng tin khuyn mi, sn

    phm mi, . y l ta t lm .Net Webservice thay cho cng ty)

    - Chng trnh ng thi cho php cp nht v tr cc i l ca cng ty v cho php tm

    kim cc i l ln cn ca mt i l no m ta cn (hoc tm cc i l gn v tr m

    ngi s dng ang ng)

    - Sinh vin c th dng Mapping Intent hoc Mapping View x l tm a im.

    Hng dn: - Dnh cho sinh vin kh gii

    - Xem hng dn slide 2844 phn Telephony APIs v LBS APIs

    - Ch yu tham kho trn mng internet

  • Lp trnh cho thit b di ng

    Trang 74

    Module 7: Thao tc vi thit b cm ng

    Ni dung kin thc thc hnh:

    - Thc hnh v SensorManager, Sensor, SenSorEventListener, SensorEvent: Cch thc

    ng k Sensor, cch thc g b ng k, cch ly Sensor mc nh, cch ly danh sch

    Sensors, cch ly cc gi tr trong SensorEvent

    - Thc hnh v cc thit b cm bin c th: cm bin nhit , cm bin nh sng, cm

    bin p sut, cm bin khong cch, cm bin gia tc, cm bin con quay hi chuyn,

    cm bin nh hng

    - Thc hnh v Pin in thoi: Cch ng k Broadcast Receiver c thng s Pin

    - Phi th trn in thoi Android thit

    Bi 1:

    Mc ch:

    - Thc hnh v hiu v Sensor Temperature:

    o Cch to Sensor

    o Cch ng k Sensor

    o Cch g b ng k

    o Ly cc thng tin trong SensorEvent

    Yu cu:

    - Vit ng dng bo ng chy n.

    - Chng trnh c giao din quy nh nhit cao nht cho php ti mi trng, khi

    nhit mi trng m vt qua nhit cho php th in thoi s m mt Audio

    cnh bo C nguy c chy n

    Hng dn: - Xem slide hng dn 11, 12

    - Xem trn internet

    Bi tp 2: Mc ch:

    - Thc hnh v hiu v Sensor Light:

    o Cch to Sensor

    o Cch ng k Sensor

    o Cch g b ng k

    o Ly cc thng tin trong SensorEvent

  • Lp trnh cho thit b di ng

    Trang 75

    Yu cu: - Vit chng trnh cnh bo phng thiu nh sng

    - ng dng cho php thit lp nh sng ti thiu trong phng, khi nh sng trong phng

    m nh hn nh sng ti thiu cho php th in thoi s m Audio Phng qu ti, yu

    cu bt n

    Hng dn: - Xem slide hng dn 13, 14

    - Xem trn internet

    Bi tp 3: Mc ch:

    - Thc hnh v hiu v Sensor Pressure:

    o Cch to Sensor

    o Cch ng k Sensor

    o Cch g b ng k

    o Ly cc thng tin trong SensorEvent

    Yu cu: - Vit chng trnh cnh bo p sut mi trng qu ln

    - ng dng cho php thit lp p sut ti a c th chp nhn, khi mi trng c p sut

    vt qu thng s cho php th in thoi s m Audio p sut qu ln, nguy him!

    Hng dn: - Xem slide hng dn 15, 16

    - Xem trn internet

    Bi tp 4: Mc ch:

    - Thc hnh v hiu v Sensor Proximity:

    o Cch to Sensor

    o Cch ng k Sensor

    o Cch g b ng k

    o Ly cc thng tin trong SensorEvent

    Yu cu: - Khi gi in thoi, ta thng p st in thoi vo tai nghe; nn i khi mn hnh cm

    ng s chm vo tai lm hy cuc gi m ta khng mong mun.

    - Do cn vit ng dng cho php thit lp khong cch ti thiu gia in thoi v i

    tng, khi no vt qu gii hn ti thiu th t ng tt mn hnh in thoi.

  • Lp trnh cho thit b di ng

    Trang 76

    Hng dn: - Xem slide hng dn 1719

    - Xem trn internet

    Bi tp 5: Mc ch:

    - Thc hnh v hiu v Sensor Accelerometer:

    o Cch to Sensor

    o Cch ng k Sensor

    o Cch g b ng k

    o Ly cc thng tin trong SensorEvent

    Yu cu: - Vit ng dng nghe nhc c h tr chc nng Lc in thoi chuyn bi ht:

    o Nu in thoi lc qua tri th m bi ht ng trc

    o Nu in thoi lc qua phi th m bi ht ng sau

    Hng dn: - Xem slide hng dn 2023

    - Xem trn internet

    Bi tp 6: Mc ch:

    - Thc hnh v hiu v Pin in thoi:

    o Ly cc thng tin trong Pin

    Yu cu: - Vit chng trnh ly cc thng s ca Pin in thoi

    Hng dn:

    - Xem slide hng dn 3034

    - Xem trn internet

  • Lp trnh cho thit b di ng

    Trang 77

    Module 8: Danh sch ti mn hc

    ti 1:

    - Vit chng trnh tra cu t in Anh Vit Vit Anh

    ti 2:

    - Vit chng trnh ng k hc phn tn ch bng SMS

    ti 3:

    - Vit chng trnh ng k hc chng ch tin hc A, B bng SMS

    ti 4:

    - Vit game bn bng s dng Sensor

    ti 5:

    - Vit chng trnh qun l Album nh

    ti 6:

    - Vit chng trnh g ting vit trong Android

    ti 7:

    - Vit chng trnh tm ng i

    ti 8:

    - Vit game caro (chi vi my)

    ti 9:

    - Vit game xp gch

    ti 10:

  • Lp trnh cho thit b di ng

    Trang 78

    - Vit chng trnh chnh sa hnh nh trong Android

    ti 11:

    - Vit chng trnh qun l ti chnh c nhn

    ti 12:

    - Vit game phi thuyn bng Sensor

    ti 13:

    - M phng tr chi Line 98 trong Android

    ti 14:

    - Vit chng trnh nhn dng khun mt v d on trong vng 20 nm na th khun

    mt s thay i nh th no

    ti 15:

    - Vit chng trnh v th ton hc trong Android