ANDROID APP
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
288 บทที่ 11 เทคนิคขั้นสูงสำาหรับพัฒนาแอพบนแอนดรอยด์<br />
กรรมวิธี: การประกาศและใช้ Permission<br />
สิทธิ์การทำงานนั้นสามารถกำหนดไว้ในแอคทิวิตี้, Broadcast Receiver, Content Provider<br />
และเซอร์วิสได้ ในการกำหนดสิทธิ์การทำงานนั้น เราจะต้องประกาศอีลีเมนต์ permission ใน<br />
AndroidManifest ดังนี้<br />
<br />
จากตัวอย่างข้างต้นจะเป็นการกำหนดสิทธิ์การทำงานเท่าที่ต้องการเท่านั้น แต่ในการเข้าถึง<br />
แอททริบิวต์ protectionLvel จะมีการเข้าถึงอยู่ 4 ระดับ ได้แก่ normal, dangerous, signature<br />
และ signatureOrSystem สำหรับแอทริบิวต์ permissionGroup จะใช้เพื่อแสดงสิทธิ์การทำงานให้<br />
แก่ผู้ใช้งานเท่านั้น ตัวอย่างการกำหนด PermissionGroup มีดังนี้<br />
permission group:android.permission-group.DEVELOPMENT_TOOLS<br />
permission group:android.permission-group.PERSONAL_INFO<br />
permission group:android.permission-group.COST_MONEY<br />
permission group:android.permission-group.LOCATION<br />
permission group:android.permission-group.MESSAGES<br />
permission group:android.permission-group.NETWORK<br />
permission group:android.permission-group.ACCOUNTS<br />
permission group:android.permission-group.STORAGE<br />
permission group:android.permission-group.PHONE_CALLS<br />
permission group:android.permission-group.HARDWARE_CONTROLS<br />
permission group:android.permission-group.SYSTEM_TOOLS<br />
แอททริบิวต์ของลาเบล, คำอธิบาย และชื่อเป็นวิธีที่จะช่วยให้ permission ชัดเจนมากขึ้น<br />
การสื่อสารข้อมูลระหว่างโปรเซสภายนอกของแอนดรอยด์<br />
ถ้าต้องการกำหนดให้แอพ 2 ตัวทำงานโดยใช้รีซอร์สร่วมกัน แต่ไม่สามารถกำหนดสิทธิ์ระหว่าง<br />
กันได้ เราจะใช้คำสั่ง IPC (Inter-Process Communication) มาช่วยในการทำงานนี้ การที่จะใช้งาน<br />
IPC นั้น เราจะต้องสร้างอินเตอร์เฟซระหว่างแอพขึ้นมา ทำได้โดยการใช้ AIDL (Android Interface<br />
Definition Language)<br />
AIDL จะมีลักษณะคล้ายกับจาวาอินเตอร์เฟซ สร้างได้ง่ายๆ ด้วยโปรแกรม Eclipse โดยเลือก<br />
คำสั่งสร้าง Java Interface หลังจากสร้างเสร็จแล้ว ระบบก็จะเปลี่ยนนามสกุลของไฟล์จาก .java<br />
ไปเป็น .aidl<br />
ชนิดของข้อมูลที่รองรับกับการทำงานของ AIDL มีดังนี้<br />
m Java Primitive เช่น int, Boolean, float<br />
m String<br />
m CharSequence