สิทธิ์ของแอปช่วยสนับสนุนความเป็นส่วนตัวของผู้ใช้โดยปกป้องการเข้าถึงรายการต่อไปนี้
- ข้อมูลที่ถูกจำกัด เช่น สถานะของระบบและข้อมูลติดต่อของผู้ใช้
- การดำเนินการที่ถูกจำกัด เช่น การเชื่อมต่อกับอุปกรณ์ที่จับคู่ไว้และการบันทึกเสียง
หน้านี้จะให้ภาพรวมเกี่ยวกับวิธีทำงานของสิทธิ์ใน Android ซึ่งรวมถึง เวิร์กโฟลว์ระดับสูงสำหรับการใช้สิทธิ์ คำอธิบายสิทธิ์ประเภทต่างๆ และแนวทางปฏิบัติแนะนำบางส่วนสำหรับการใช้สิทธิ์ในแอป หน้าอื่นๆ จะอธิบายวิธีลดคำขอสิทธิ์ของแอป ประกาศสิทธิ์ ขอสิทธิ์รันไทม์ และจำกัดวิธีที่แอปอื่นๆ จะโต้ตอบกับคอมโพเนนต์ของแอป
หากต้องการดูรายการสิทธิ์ของแอป Android ทั้งหมด โปรดไปที่หน้าเอกสารอ้างอิง API ของสิทธิ์
หากต้องการดูแอปตัวอย่างบางส่วนที่แสดงเวิร์กโฟลว์การให้สิทธิ์ โปรดไปที่ ที่เก็บตัวอย่างสิทธิ์ของ Android ใน GitHub
เวิร์กโฟลว์สำหรับการใช้สิทธิ์
หากแอปมีฟังก์ชันการทำงานที่อาจต้องเข้าถึงข้อมูลที่ถูกจำกัดหรือ การดำเนินการที่ถูกจำกัด ให้พิจารณาว่าคุณจะรับข้อมูลหรือดำเนินการ โดยไม่ต้องประกาศสิทธิ์ได้หรือไม่ คุณสามารถดำเนินการตามกรณีการใช้งานต่างๆ ในแอปได้ เช่น การถ่ายรูป การหยุดเล่นสื่อชั่วคราว และการแสดงโฆษณาที่เกี่ยวข้อง โดยไม่ต้องประกาศสิทธิ์ใดๆ
หากคุณตัดสินใจว่าแอปต้องเข้าถึงข้อมูลที่ถูกจำกัดหรือดำเนินการที่ถูกจำกัด เพื่อให้เป็นไปตามกรณีการใช้งาน ให้ประกาศสิทธิ์ที่เหมาะสม สิทธิ์บางอย่างที่เรียกว่าสิทธิ์ขณะติดตั้งจะได้รับโดยอัตโนมัติเมื่อติดตั้งแอป สิทธิ์อื่นๆ ที่เรียกว่าสิทธิ์รันไทม์กำหนดให้แอปของคุณต้องดำเนินการอีกขั้นและ ขอสิทธิ์ในรันไทม์
รูปที่ 1 แสดงเวิร์กโฟลว์สำหรับการใช้สิทธิ์ของแอป
ประเภทของสิทธิ์
Android จัดหมวดหมู่สิทธิ์เป็นประเภทต่างๆ ซึ่งรวมถึงสิทธิ์ขณะติดตั้ง สิทธิ์รันไทม์ และสิทธิ์พิเศษ ประเภทของสิทธิ์แต่ละรายการจะระบุขอบเขตของข้อมูลที่ถูกจำกัดซึ่งแอปของคุณเข้าถึงได้ และขอบเขตของการดำเนินการที่ถูกจำกัดซึ่งแอปของคุณทำได้ เมื่อระบบให้สิทธิ์ดังกล่าวแก่แอป ระดับการป้องกันของสิทธิ์แต่ละรายการจะขึ้นอยู่กับ ประเภทของสิทธิ์และจะแสดงในหน้าเอกสารอ้างอิง API ของสิทธิ์
สิทธิ์ขณะติดตั้ง
สิทธิ์ขณะติดตั้งช่วยให้แอปของคุณมีสิทธิ์เข้าถึงข้อมูลที่จำกัดหรือ ช่วยให้แอปของคุณดำเนินการที่จำกัดซึ่งส่งผลต่อระบบหรือแอปอื่นๆ น้อยที่สุด เมื่อคุณประกาศสิทธิ์ขณะติดตั้งในแอป App Store จะแสดงประกาศเกี่ยวกับสิทธิ์ขณะติดตั้งต่อผู้ใช้เมื่อผู้ใช้ดูหน้ารายละเอียดของแอป ดังที่แสดงในรูปที่ 2 ระบบจะให้สิทธิ์แก่แอปของคุณโดยอัตโนมัติเมื่อผู้ใช้ติดตั้งแอป ของคุณ
Android มีสิทธิ์รันไทม์หลายประเภทย่อย ซึ่งรวมถึง สิทธิ์ปกติและสิทธิ์ลายเซ็น
สิทธิ์ทั่วไป
สิทธิ์เหล่านี้อนุญาตให้เข้าถึงข้อมูลและการดำเนินการที่อยู่นอกแซนด์บ็อกซ์ของแอป แต่มีความเสี่ยงน้อยมากต่อความเป็นส่วนตัวของผู้ใช้ และการทำงานของแอปอื่นๆ
ระบบจะกำหนดnormal
ระดับการปกป้องให้กับสิทธิ์ปกติ
สิทธิ์ของลายเซ็น
ระบบจะให้สิทธิ์ลายเซ็นแก่แอปเฉพาะเมื่อแอป ลงนามด้วยใบรับรองเดียวกันกับแอปหรือระบบปฏิบัติการที่กำหนดสิทธิ์
แอปพลิเคชันที่ใช้บริการที่มีสิทธิ์ เช่น บริการป้อนข้อความอัตโนมัติหรือ VPN จะใช้สิทธิ์ลายเซ็นด้วย แอปเหล่านี้ต้องมีสิทธิ์ลายเซ็นการเชื่อมโยงบริการเพื่อให้มีเพียงระบบเท่านั้นที่เชื่อมโยงกับบริการได้
ระบบจะกำหนดsignature
ระดับการป้องกันให้กับสิทธิ์ลายเซ็น
สิทธิ์ขณะรันไทม์
สิทธิ์รันไทม์หรือที่เรียกว่าสิทธิ์ที่เป็นอันตรายจะให้สิทธิ์แอปของคุณ เข้าถึงข้อมูลที่จำกัดเพิ่มเติม หรืออนุญาตให้แอปของคุณดำเนินการ ที่จำกัดซึ่งส่งผลต่อระบบและแอปอื่นๆ มากขึ้น ดังนั้น คุณต้องขอสิทธิ์รันไทม์ในแอปก่อนจึงจะเข้าถึง ข้อมูลที่ถูกจำกัดหรือดำเนินการที่ถูกจำกัดได้ อย่าคิดว่าสิทธิ์เหล่านี้ได้รับมาก่อนแล้ว ให้ตรวจสอบสิทธิ์และขอสิทธิ์ก่อนเข้าถึงแต่ละครั้งหากจำเป็น
เมื่อแอปขอ สิทธิ์รันไทม์ ระบบจะแสดงข้อความแจ้งสิทธิ์รันไทม์ ดังที่แสดงใน รูปที่ 3
สิทธิ์รันไทม์จำนวนมากเข้าถึงข้อมูลส่วนตัวของผู้ใช้ ซึ่งเป็นข้อมูลที่ถูกจำกัดประเภทพิเศษที่มีข้อมูลที่อาจละเอียดอ่อน ตัวอย่าง ข้อมูลส่วนตัวของผู้ใช้ ได้แก่ ข้อมูลตำแหน่งและข้อมูลติดต่อ
ไมโครโฟนและกล้องให้สิทธิ์เข้าถึงข้อมูลที่มีความละเอียดอ่อนเป็นพิเศษ ดังนั้น ระบบจึงช่วยให้คุณอธิบายเหตุผลที่แอปเข้าถึงข้อมูลนี้ได้
ระบบจะกำหนดdangerous
ระดับการปกป้องให้กับสิทธิ์รันไทม์
สิทธิ์พิเศษ
สิทธิ์พิเศษจะสอดคล้องกับการดำเนินการของแอปที่เฉพาะเจาะจง มีเพียงแพลตฟอร์ม และ OEM เท่านั้นที่กำหนดสิทธิ์พิเศษได้ นอกจากนี้ แพลตฟอร์มและ OEM มักจะกำหนดสิทธิ์พิเศษเมื่อต้องการปกป้องการเข้าถึง การดำเนินการที่มีประสิทธิภาพเป็นพิเศษ เช่น การวาดทับแอปอื่นๆ
หน้าการเข้าถึงแอปแบบพิเศษในการตั้งค่าระบบมีชุดการดำเนินการที่ ผู้ใช้สลับได้ การดำเนินการหลายอย่างเหล่านี้จะใช้เป็นสิทธิ์พิเศษ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีขอสิทธิ์พิเศษ
ระบบจะกำหนดappop
ระดับการปกป้องให้กับสิทธิ์พิเศษ
กลุ่มสิทธิ์
สิทธิ์อาจอยู่ในกลุ่มสิทธิ์ กลุ่มสิทธิ์ประกอบด้วยชุดสิทธิ์ที่เกี่ยวข้องอย่างมีตรรกะ ตัวอย่างเช่น สิทธิ์ในการส่งและรับข้อความ SMS อาจอยู่ในกลุ่มเดียวกัน เนื่องจากทั้ง 2 สิทธิ์เกี่ยวข้องกับการโต้ตอบของแอปพลิเคชันกับ SMS
กลุ่มสิทธิ์ช่วยให้ระบบลดจำนวนกล่องโต้ตอบของระบบที่แสดงต่อผู้ใช้เมื่อแอปขอสิทธิ์ที่เกี่ยวข้องอย่างใกล้ชิด เมื่อ ผู้ใช้เห็นข้อความแจ้งให้สิทธิ์แอปพลิเคชัน สิทธิ์ที่อยู่ในกลุ่มเดียวกันจะแสดงในอินเทอร์เฟซเดียวกัน อย่างไรก็ตาม สิทธิ์อาจเปลี่ยนแปลงกลุ่มโดยไม่ต้องแจ้งให้ทราบ ดังนั้นอย่าคิดว่าสิทธิ์หนึ่งๆ จะจัดกลุ่มร่วมกับสิทธิ์อื่นๆ
แนวทางปฏิบัติแนะนำ
สิทธิ์ของแอปสร้างขึ้นจากฟีเจอร์ความปลอดภัยของระบบและช่วยให้ Android สนับสนุน เป้าหมายต่อไปนี้ที่เกี่ยวข้องกับความเป็นส่วนตัวของผู้ใช้
- การควบคุม: ผู้ใช้ควบคุมข้อมูลที่แชร์กับแอปได้
- ความโปร่งใส: ผู้ใช้เข้าใจว่าแอปใช้ข้อมูลใดและเหตุผลที่แอปเข้าถึงข้อมูลนี้
- การจำกัดปริมาณข้อมูล: แอปจะเข้าถึงและใช้เฉพาะข้อมูลที่จำเป็น สำหรับงานหรือการดำเนินการที่ผู้ใช้เรียกใช้
ส่วนนี้จะนำเสนอชุดแนวทางปฏิบัติแนะนำหลักๆ สำหรับการใช้สิทธิ์ อย่างมีประสิทธิภาพในแอปของคุณ ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้สิทธิ์ ใน Android ได้ที่หน้าแนวทางปฏิบัติแนะนำเกี่ยวกับสิทธิ์ของแอป
ขอสิทธิ์จำนวนน้อยที่สุด
เมื่อผู้ใช้ขอให้ดำเนินการอย่างใดอย่างหนึ่งในแอป แอปของคุณควรขอเฉพาะสิทธิ์ที่จำเป็นต่อการดำเนินการนั้นให้เสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับวิธีที่คุณใช้สิทธิ์ อาจมีวิธีอื่นในการตอบสนองกรณีการใช้งานของแอปโดยไม่ต้องอาศัยการเข้าถึงข้อมูลที่ละเอียดอ่อน
เชื่อมโยงสิทธิ์รันไทม์กับการดำเนินการที่เฉพาะเจาะจง
ขอสิทธิ์ในขั้นตอนการใช้งาน Use Case ของแอปให้ช้าที่สุดเท่าที่จะเป็นไปได้ เช่น หากแอปของคุณอนุญาตให้ผู้ใช้ส่งข้อความเสียงให้ผู้อื่น ให้รอจนกว่าผู้ใช้จะไปที่หน้าจอการรับส่งข้อความและกดปุ่มส่งข้อความเสียง หลังจากผู้ใช้กดปุ่มแล้ว แอปของคุณจะ ขอสิทธิ์เข้าถึงไมโครโฟนได้
พิจารณาทรัพยากร Dependency ของแอป
เมื่อรวมไลบรารี คุณจะได้รับข้อกำหนดด้านสิทธิ์ของไลบรารีนั้นด้วย โปรด ทราบสิทธิ์ที่การขึ้นต่อกันแต่ละรายการต้องใช้และวัตถุประสงค์ของการใช้สิทธิ์เหล่านั้น
มีความโปร่งใส
เมื่อส่งคำขอสิทธิ์ ให้ระบุอย่างชัดเจนว่าคุณกำลังเข้าถึงอะไร ทำไม และฟังก์ชันการทำงานใดจะได้รับผลกระทบหากมีการปฏิเสธสิทธิ์ เพื่อให้ผู้ใช้ตัดสินใจได้อย่างรอบคอบ
ระบุการเข้าถึงระบบอย่างชัดเจน
เมื่อเข้าถึงข้อมูลหรือฮาร์ดแวร์ที่มีความละเอียดอ่อน เช่น กล้องหรือไมโครโฟน ให้ระบุอย่างต่อเนื่องในแอปหากระบบยังไม่ได้ระบุสัญญาณเหล่านี้ การช่วยเตือนนี้จะช่วยให้ผู้ใช้เข้าใจได้อย่างชัดเจนว่าแอปของคุณเข้าถึงข้อมูลที่ถูกจำกัด หรือดำเนินการที่ถูกจำกัดเมื่อใด
สิทธิ์ในคอมโพเนนต์ของระบบ
สิทธิ์ไม่ได้มีไว้สำหรับขอฟังก์ชันการทำงานของระบบเท่านั้น คอมโพเนนต์ของระบบในแอปสามารถจำกัดแอปอื่นๆ ที่โต้ตอบกับแอปของคุณได้ตามที่อธิบายไว้ในหน้าเกี่ยวกับวิธีจำกัดการโต้ตอบกับแอปอื่นๆ