private static final int SHOW_SUBACTIVITY = 1; private void startSubActivity... SERVICE• Life cycle:... o Gravity Sensor Android 2.3o Linear Accelerometer Sensor Android 2.3 o Rotation V
Trang 1Intent - Broadcast Receiver & Adapter
- Service & Internet - Sensor
Ch ng 11
Lê V n H nh
levanhanhvn@gmail.com
Trang 2N I DUNG
1 Intent
2 Broadcast Receiver & Adapter
3 Service & Internet
Trang 31 INTENT
• Intent đ c s d ng nh m t b máy truy n
thông đi p gi a các thành ph n trong ng d ng,
Trang 41 INTENT
• ng ký Intent
• S d ng Intent
Trang 51 INTENT
• Intent đ c chia làm 2 lo i:
o Implicitly Intent: Intent không ch rõ component x
lý, thay vào đó nó b sung thông tin trong các thu c
tính
VD: ACTION_DIAL tel:123 thông th ng s đ c h th ng
giao cho activity Phone Dialer m c đ nh c a Android x lý.
o Explicitly Intent: intent đã đ c xác đ nh thu c tính
component, ngh a là đã ch rõ thành ph n s nh n và
x lý intent
Trang 61 INTENT
• Các thu c tính c a Intent:
o action: là hành đ ng đ c th c hi n
VD: ACTION_VIEW, ACTION_MAIN
o data: là d li u s đ c x lý trong action, th ng
đ c di n t là m t URI (Uniform Resource
Trang 71 INTENT
• M t s thu c tính có th b sung vào Intent:
o category: b sung thêm thông tin cho action c a
Trang 81 INTENT
• M t s action th ng s d ng trong Intent:
o ACTION_ANSWER - m Activity đ x lý cu c g i t i, th ng là
Phone Dialer c a Android
o ACTION_CALL - m 1 Phone Dialer (m c đ nh là PD c a Android) và
ngay l p t c th c hi n cu c g i d a vào thông tin trong data URI
o ACTION_DELETE - m Activity cho phép xóa d li u mà đ a ch c a
nó ch a trong data URI
o ACTION_DIAL - m 1 Phone Dialer (m c đ nh là PD c a Android) và
đi n thông tin l y t đ a ch ch a trong data URI
o ACTION_EDIT - m 1 Activity cho phép ch nh s a d li u mà đ a ch
l y t data URI
o ACTION_SEND - m 1 Activity cho phép g i d li u l y t data URI,
ki u c a d li u xác đ nh trong thu c tính type
o ACTION_SENDTO - m 1 Activity cho phép g i thông đi p t i đ a ch
l y t data URI
o ACTION_VIEW - action thông d ng nh t, kh i ch y activity thích h p
đ hi n th d li u trong data URI
o ACTION_MAIN - s d ng đ kh i ch y 1 Activity
Trang 91 INTENT
• B sung thêm d li u cho Intent b ng thu c tính
extras thông qua ph ng th c:
Trang 101 INTENT
• S d ng ph ng th c startActivityForResult()
thay cho startActivity() đ nh n k t qu tr v
private static final int SHOW_SUBACTIVITY = 1;
private void startSubActivity()
Trang 122 LINKIFY
• T o Linkify trong Java code:
TextView textView =
TextView)findViewById(R.id.myTextView); Linkify.addLinks(textView,
Trang 143 Broadcast Receiver
• Hai thành ph n chính c a Broadcast có th nh n Intent
o Normal broadcasts: th c hi n g i theo c ch không đ ng
b , các Receiver th c thi không theo th t nh t đ nh S
d ng ph ng th c sendBroadcast()
o Ordered broadcasts: Vào m i th i đi m ch g i đ n m t
broadcast và s d ng ph ng th c
sendOrderedBroadcast()
• Vòng đ i c a Broadcast Receiver: Broadcast ch ho t
đ ng trong th i gian onReceive() đ c g i, và khi k t thúc hàm này, thì broadcast đã hoàn thành và không còn ho t
đ ng n a.
• S cung c p quy n: Ch Broadcast receiver đ c cung
c p quy n m i có th nh n nh ng intent g i đi
• H y đ ng ký cho Broadcast
unregisterReceiver(receiver);
Trang 153 Broadcast Receiver
• M t s ví d :
o VD Broadcast Receiver
IntentFilter filter = new
IntentFilter(EarthquakeService.NEW _ EARTHQUAKE_ FOUND); receiver = new EarthquakeReceiver();
registerReceiver(receiver, filter);
o VD g i intent đ n Broadcast Receiver
Intent intent = new Intent(NEW_ E ARTHQUAKE _ FOUND);
Trang 16}
Trang 174 SERVICE
• Là m t trong nh ng thành ph n c a Android, đ c ch y
trên background th c hi n nh ng công vi c tính toán
không đòi h i giao di n
• Service gi ng nh Activity th c hi n theo chu k th i
gian đ qu n lý s thay đ i c a tr ng thái
Trang 18 Lo i service này th c hi n công vi c đ n l nh download,
tính toán và service s d ng m t khi công vi c hòan thành.
Trang 194 SERVICE
• T o started Service: có 2 cách
o Service: L p c s c a t t c Service
o IntentService: L p con c a Service, là cách t t nh t n u
không đòi h i Service handle nhi u yêu c u đ ng th i.
while (System.currentTimeMillis() < endTime) { synchronized (this)
{ wait(endTime - System.currentTimeMillis());} catch (Exception e) {}
} }
} }
Trang 204 SERVICE
• Life cycle:
Trang 215 C M BI N (SENSOR)
• C m bi n là ph n c ng đ c tích h p trên cácthi t b , có tác d ng ph n h i l i các hành đ ng
th gi i th c vào trong môi tr ng ng d ng ch ytrên thi t b đó
• Các hành đ ng trong c m bi n đ c th c hi n
m t chi u và chúng ch cho phép th c hi n cáchành đ ng m c đ nh s n (tr NFC)
• GPS c ng là m t b c m bi n nh ng không đ ctích h p vào n n t ng c m bi n trong Android
Trang 22o Gravity Sensor (Android 2.3)
o Linear Accelerometer Sensor (Android 2.3)
o Rotation Vector Sensor (Android 2.3)
o Near Field Communication Sensor (Android 2.3)
5 C M BI N (SENSOR)
Trang 24List<Sensor> sensors = mgr.getSensorList(Sensor.TYPE_ALL);
StringBuilder message = new StringBuilder(2048);
message.append("The sensors on this device are:\n");
for(Sensor sensor : sensors)
message.append(" Resolution: " + sensor.getResolution() + "\n");
message.append(" Max Range: " +
Trang 29theo th i gian cho tr c tr khi th c hi n các hàm API
c a driver c m bi n và thi t l p l i giao di n (Interface)
Trang 305.3 X lý thông tin m t s C m bi n
• C m bi n gia t c đ c s d ng đ thu nh n các thay
đ i h ng v t lý c a thi t b trong không gian có m i
t ng quan v i tr ng l c và các l c tác d ng lên thi t
b
• n v tính: m/s2
5 C M BI N (SENSOR)
5.3.1 Accelerometer
Trang 315.3.1 Accelerometer
• Minh h a các thông s trên các tr c x,y,z s đ c t ng
h p và tr v duy nh t m t giá tr Rotation khi thi t b
thay đ i các tr ng thái v ph ng h ng
5 C M BI N (SENSOR)
5.3 X lý thông tin m t s C m bi n
Trang 325.3.1 Accelerometer
• Ví d s d ng c m bi n gia t c
5 C M BI N (SENSOR)
5.3 X lý thông tin m t s C m bi n
Trang 335.3.2 Near Field Communacation Sensor
• NFC (Near Field Communacation) là m t chu n giao
ti p gi a thi t b di đ ng v i các th thông tin đ c g i
là NFC Tags ho c v i các thi t b khác
• Có 3 ki u ti p nh n d li u b ng NFC:
o T ng tác v i các th tag cho vi c nh n và ghi
thông tin trên thi t b di đ ng
o Thi t b di đ ng đ c xem nh n i đ các thi t b
khác truy xu t thông tin
o Hai thi t b cùng trao đ i và ti p nh n các thông tin
c a nhau
5 C M BI N (SENSOR)
5.3 X lý thông tin m t s C m bi n
Trang 345.3.2 Near Field Communacation Sensor
• NFC c b n làm vi c d li u d ng NDEF (NFC Data
Exchange Format) và s d ng h th ng Tag Dispatch
đ phân bi t t ng lo i d li u và kh i đ ng ng d ng
t ng ng
• H th ng Tag Dispatch th c hi n theo c ch :
o Phân tích d li u NDEF và chuy n d li u sang
Trang 355.3.2 Near Field Communacation Sensor
• D li u NDEF đ c gói trong NdefMessage và ch a
d ng các NdefRecord v i các tr ng d li u sau:
o 3-bit TNF (Type Name Format): tr ng ch đ nh
đ nh d ng d li u
o Variable Length Type: ki u đ dài d li u
o Variable Length ID: Id ch đ nh record
o Variable Length Playload: d li u c a record
5 C M BI N (SENSOR)
5.3 X lý thông tin m t s C m bi n
Trang 365.3.2 Near Field Communacation Sensor
• C m bi n NFC đ c đi u khi n b i NFCAdapter
Trang 375.3.2 Near Field Communacation Sensor
• Th t u tiên x lý các gói Intent đ c g i t i thi t
b :
kh i ch y m t Activity trong ng d ng có đ ng ký
x lý gói intent này
nào đ ng ký vi c x lý gói intent đ n, h th ng s
Trang 385.3.2 Near Field Communacation Sensor
5 C M BI N (SENSOR)
5.3 X lý thông tin m t s C m bi n
Trang 395.3.2 Near Field Communacation Sensor