<permission>

ไวยากรณ์:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
ที่อยู่ใน:
<manifest>
description:
ประกาศสิทธิ์ความปลอดภัยที่ใช้เพื่อ จำกัดการเข้าถึงคอมโพเนนต์หรือฟีเจอร์เฉพาะของแอปพลิเคชันนี้หรือแอปพลิเคชันอื่น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของสิทธิ์ ให้ดูที่ส่วนสิทธิ์ในภาพรวมไฟล์ Manifest ของแอปและเคล็ดลับความปลอดภัย
ดังนี้
android:description
คำอธิบายสิทธิ์ที่ผู้ใช้อ่านได้ ซึ่งมีความยาวและมากกว่า ที่มีประโยชน์มากกว่าป้ายกำกับ เช่น ข้อมูลนี้อาจแสดงเพื่ออธิบาย สิทธิ์ของผู้ใช้เมื่อมีการสอบถามผู้ใช้ เพื่อให้สิทธิ์แก่แอปพลิเคชันอื่น

แอตทริบิวต์นี้ตั้งเป็นการอ้างอิงทรัพยากรสตริง แอตทริบิวต์นี้แตกต่างจากแอตทริบิวต์ label ตรงที่จะเป็นสตริงดิบไม่ได้

android:icon
การอ้างอิงทรัพยากรที่ถอนออกได้สำหรับไอคอนที่แสดงถึง สิทธิ์
android:label
ชื่อสิทธิ์ที่ผู้ใช้อ่านได้

คุณสามารถกำหนดป้ายกำกับโดยตรงเพื่อความสะดวก เป็นสตริงดิบในขณะที่คุณกำลังพัฒนาแอปพลิเคชัน อย่างไรก็ตาม เมื่อแอปพลิเคชันพร้อมที่จะเผยแพร่ ให้กำหนด การอ้างอิงไปยังทรัพยากรสตริง เพื่อให้ระบบแปลได้อย่างอิสระ สตริงในอินเทอร์เฟซผู้ใช้

android:name
ชื่อที่จะใช้ เพื่ออ้างถึงสิทธิ์ เช่น <uses-permission> หรือ แอตทริบิวต์ permission ของคอมโพเนนต์แอปพลิเคชัน

หมายเหตุ: ระบบไม่อนุญาตให้ประกาศแพ็กเกจหลายรายการ สิทธิ์ที่มีชื่อเดียวกัน เว้นแต่ว่าแพ็กเกจทั้งหมดจะมีการลงชื่อด้วย ใบรับรองเดียวกัน หากแพ็กเกจประกาศสิทธิ์ ระบบจะไม่อนุญาต ให้ผู้ใช้ติดตั้งแพ็กเกจอื่นๆ ที่มีชื่อสิทธิ์เหมือนกัน ยกเว้นในกรณีที่ แพ็กเกจเหล่านั้นลงชื่อด้วยใบรับรองเดียวกันกับแพ็กเกจแรก

ด้วยเหตุนี้ Google ขอแนะนำให้ใช้คำนำหน้าชื่อแพ็กเกจของแอป โดยใช้การตั้งชื่อแบบย้อนกลับ ติดตามคำนำหน้านี้ด้วย .permission. ตามด้วยคำอธิบายของ ความสามารถที่สิทธิ์แสดงในรูปแบบ SNAKE_CASE ด้านบน ดังตัวอย่างต่อไปนี้ com.example.myapp.permission.ENGAGE_HYPERSPACE

การทำตามคำแนะนำนี้จะหลีกเลี่ยงการตั้งชื่อชนกันและช่วยระบุเจ้าของอย่างชัดเจน และเจตนาของสิทธิ์ที่กำหนดเอง

android:permissionGroup
มอบสิทธิ์นี้ให้กับกลุ่ม ค่าของแอตทริบิวต์นี้คือ ชื่อกลุ่ม ซึ่งประกาศด้วย <permission-group> องค์ประกอบใน หรือแอปพลิเคชันอื่น หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ไว้สิทธิ์ ไม่ได้อยู่ในกลุ่ม
android:protectionLevel

อธิบายลักษณะของความเสี่ยงที่อาจเกิดขึ้นในการอนุญาตและ ระบุกระบวนการให้ระบบปฏิบัติตามเมื่อพิจารณา จะให้สิทธิ์แอปพลิเคชันที่ขอการอนุญาตหรือไม่

ระดับการป้องกันแต่ละระดับประกอบด้วยประเภทสิทธิ์พื้นฐาน 1 รายการหรือมากกว่านั้น ตัวอย่างเช่น ระดับการป้องกัน "dangerous" จะไม่มี ในทางกลับกัน ระดับการป้องกัน "signature|privileged" เป็นชุดค่าผสมของประเภทสิทธิ์พื้นฐาน "signature" และ แฟล็ก "privileged"

ตารางต่อไปนี้แสดงประเภทสิทธิ์พื้นฐานทั้งหมด สำหรับรายการแฟล็ก โปรดดูที่ protectionLevel

ค่า ความหมาย
"normal" ค่าเริ่มต้น สิทธิ์ที่มีความเสี่ยงต่ำกว่าซึ่งทำให้มีคำขอ เข้าถึงคุณลักษณะระดับแอปพลิเคชันแบบแยกด้วย ความเสี่ยงต่ำต่อแอปพลิเคชัน ระบบ หรือผู้ใช้ ระบบจะให้สิทธิ์ประเภทนี้โดยอัตโนมัติ อนุญาตสำหรับแอปพลิเคชันที่ขอเมื่อติดตั้ง โดย ที่ได้รับการอนุมัติที่ชัดเจนจากผู้ใช้ แต่ถึงกระนั้น มีตัวเลือกในการตรวจสอบสิทธิ์เหล่านี้ก่อนการติดตั้ง
"dangerous" สิทธิ์ที่มีความเสี่ยงสูงซึ่งทำให้แอปพลิเคชันที่ขอ เข้าถึงข้อมูลผู้ใช้ส่วนตัวหรือควบคุมอุปกรณ์ที่สามารถ ส่งผลเสียต่อผู้ใช้ เนื่องจากสิทธิ์ประเภทนี้ อาจก่อให้เกิดความเสี่ยงได้ เนื่องจากระบบอาจไม่ได้ติดตาม ให้แอปพลิเคชันที่ขอ เช่น เนื้อหาที่เป็นอันตราย การอนุญาตที่ขอโดยแอปพลิเคชันอาจแสดงต่อ ผู้ใช้ และต้องมีการยืนยันก่อนที่จะดำเนินการต่อ หรือ เพื่อหลีกเลี่ยงการอนุญาตให้ผู้ใช้ การใช้งานสิ่งอำนวยความสะดวกดังกล่าว
"signature" สิทธิ์ที่ระบบกำหนดให้ก็ต่อเมื่อมีการส่งคำขอ ใบสมัครถูกลงชื่อด้วยใบรับรองเดียวกันกับใบสมัคร ที่ประกาศสิทธิ์นั้น ถ้าใบรับรองตรงกัน ระบบจะ ให้สิทธิ์โดยอัตโนมัติโดยไม่ต้องแจ้งให้ผู้ใช้ทราบ หรือ ที่รอการอนุมัติที่ชัดเจนจากผู้ใช้
"knownSigner" สิทธิ์ที่ระบบกำหนดให้ก็ต่อเมื่อมีการส่งคำขอ แอปพลิเคชันมีการรับรองด้วย อนุญาต ใบรับรอง หากมีใบรับรองของผู้ขออยู่ในรายการ ระบบจะ ให้สิทธิ์โดยอัตโนมัติโดยไม่ต้องแจ้งให้ผู้ใช้ทราบ หรือ ที่รอการอนุมัติที่ชัดเจนจากผู้ใช้
"signatureOrSystem"

คำพ้องความหมายเดิมสำหรับ "signature|privileged" เลิกใช้งานใน API ระดับ 23

สิทธิ์ที่ระบบกำหนดให้กับแอปพลิเคชันที่ ในโฟลเดอร์เฉพาะบนอิมเมจระบบ Android หรือที่ ลงชื่อด้วยใบรับรองเดียวกันกับแอปพลิเคชันที่ประกาศ สิทธิ์ หลีกเลี่ยงการใช้ตัวเลือกนี้ เนื่องจาก "signature" ระดับการป้องกันนั้นเพียงพอต่อความต้องการส่วนใหญ่และใช้งานได้ไม่ว่าจะ ของตำแหน่งที่ติดตั้งแอป

สิทธิ์ "signatureOrSystem" ใช้สำหรับข้อเสนอพิเศษบางอย่าง ในสถานการณ์ที่มีผู้ให้บริการหลายรายมีแอปพลิเคชันติดตั้งไว้ในระบบ และจำเป็นต้องแบ่งปันคุณลักษณะเฉพาะหนึ่งๆ อย่างชัดเจน สร้างสรรค์มาด้วยกัน

เปิดตัวใน
API ระดับ 1
ดูเพิ่มเติม
<uses-permission>
<permission-tree>
<permission-group>