<ตัวรับ>

ไวยากรณ์:
<receiver android:directBootAware=["true" | "false"]
          android:enabled=["true" | "false"]
          android:exported=["true" | "false"]
          android:icon="drawable resource"
          android:label="string resource"
          android:name="string"
          android:permission="string"
          android:process="string" >
    ...
</receiver>
ที่อยู่ใน:
<application>
สามารถมีข้อมูลต่อไปนี้
<intent-filter>
<meta-data>
description:
ประกาศ Broadcast Receiver ซึ่งเป็น BroadcastReceiver คลาสย่อย เป็นหนึ่งในคอมโพเนนต์ของแอปพลิเคชัน เปิดใช้ Broadcast Receiver อยู่ แอปพลิเคชันเพื่อรับ Intent ที่เผยแพร่โดยระบบหรือโดย แม้ว่าคอมโพเนนต์อื่นๆ ของแอปพลิเคชันจะไม่ได้ทำงานอยู่ก็ตาม

การทำให้ระบบรู้จัก Broadcast Receiver ได้ 2 วิธี ประการแรกคือ ให้ประกาศในไฟล์ Manifest พร้อมด้วยเอลิเมนต์นี้ อีกวิธีคือการสร้าง ผู้รับแบบไดนามิกในโค้ดและลงทะเบียนไว้กับ Context.registerReceiver() หรือเมธอดใดเวอร์ชันหนึ่งที่โอเวอร์โหลด

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างตัวรับแบบไดนามิก โปรดดู BroadcastReceiver ชั้นเรียน คำอธิบาย

หากตัวรับสัญญาณนี้จัดการการออกอากาศที่ไม่ใช่ระบบ ให้ระบุค่าสำหรับ android:exported ตั้งค่านี้เป็น "true" หากคุณต้องการให้ผู้รับสามารถ ตัวรับสัญญาณจากแอปพลิเคชันอื่นหรือ "false" หากคุณ ต้องการให้ผู้รับรับการออกอากาศจากแอปของคุณเองได้

คุณไม่จำเป็นต้องนำแอตทริบิวต์ android:permission ออกหาก ได้ประกาศไปแล้ว

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

ดังนี้
android:directBootAware

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

หมายเหตุ: ระหว่าง Direct Boot (การเปิดเครื่องโดยตรง) ซึ่งเป็นการออกอากาศ ตัวรับสัญญาณในแอปพลิเคชันของคุณ สามารถเข้าถึงเฉพาะข้อมูลที่เก็บไว้ใน พื้นที่เก็บข้อมูลที่ปกป้องอุปกรณ์

ค่าเริ่มต้นคือ "false"

android:enabled
ระบบสร้างอินสแตนซ์ Broadcast Receiver ได้หรือไม่ ตอนนี้ "true" หากทำได้ และ "false" หากทำได้ ค่าเริ่มต้น มีค่า "true"

องค์ประกอบ <application> ของตัวเอง แอตทริบิวต์ enabled ที่ใช้กับแอตทริบิวต์ทั้งหมด คอมโพเนนต์ต่างๆ ของแอปพลิเคชัน รวมถึง Broadcast Receiver <application> และ แอตทริบิวต์ <receiver> ต้องเป็น "true" ทั้งคู่ Broadcast Receiver จะเปิดใช้ หากข้อใดข้อหนึ่งคือ "false" ค่า ปิดใช้งานและไม่สามารถสร้างอินสแตนซ์ได้

android:exported
Broadcast Receiver รับข้อความจากแหล่งที่มาที่ไม่ใช่ระบบได้หรือไม่ ภายนอกแอปพลิเคชัน ราคา "true" หากทำได้ และ"false" หากไม่ หากเป็น "false" ข้อความเดียวที่ Broadcast Receiver จะส่งข้อความ ผู้รับหมายถึงข้อความที่ส่งมาโดยระบบ คอมโพเนนต์ของแอปพลิเคชัน หรือแอปพลิเคชันเดียวกัน ด้วย User-ID เดียวกัน

หากไม่ระบุ ค่าเริ่มต้นจะขึ้นอยู่กับว่า Broadcast Receiver มี Intent หรือไม่ ตัวกรอง หากฝั่งผู้รับมีตัวกรอง Intent อย่างน้อย 1 รายการ ค่าเริ่มต้นจะเป็น "true" หากไม่ได้กำหนด ค่าเริ่มต้นจะเป็น "false"

แอตทริบิวต์นี้ไม่ใช่วิธีเดียวในการจำกัดการรับแสงภายนอกของ Broadcast Receiver คุณยังใช้สิทธิ์เพื่อจำกัดเอนทิตีภายนอกที่ส่งข้อความได้ ดูแอตทริบิวต์ permission

android:icon
ไอคอนที่แสดงถึง Broadcast Receiver ตั้งค่าแอตทริบิวต์นี้แล้ว เป็นการอ้างอิงไปยังทรัพยากรที่ถอนออกได้ที่มีคำจำกัดความของรูปภาพ หากไม่ได้ตั้งค่า ระบบจะใช้ไอคอนที่ระบุสำหรับแอปพลิเคชันโดยรวม แทน โปรดดู<application> แอตทริบิวต์ icon ขององค์ประกอบ

ไอคอนตัวรับสัญญาณออกอากาศ ไม่ว่าจะตั้งค่าไว้ที่นี่หรือตามการตั้งค่า <application> ยังเป็นองค์ประกอบ ไอคอนเริ่มต้นสำหรับตัวกรอง Intent ของผู้รับทั้งหมด โปรดดู ขององค์ประกอบ <intent-filter> icon

android:label
ป้ายกำกับที่ผู้ใช้อ่านได้สำหรับ Broadcast Receiver หากแอตทริบิวต์นี้ไม่ใช่ ป้ายกำกับที่ตั้งไว้สำหรับแอปพลิเคชันโดยรวมคือ ใช้แทน ดูองค์ประกอบ <application> label

ป้ายกำกับของผู้รับออกอากาศ ไม่ว่าจะตั้งค่าไว้ที่นี่หรือตามการตั้งค่า <application> ยังเป็นองค์ประกอบ ป้ายกำกับเริ่มต้นสำหรับตัวกรอง Intent ของผู้รับทั้งหมด โปรดดู ขององค์ประกอบ <intent-filter> label

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

android:name
ชื่อคลาสที่ใช้งาน Broadcast Receiver ซึ่งเป็นคลาสย่อยของ BroadcastReceiver นี่เป็นคุณสมบัติที่สมบูรณ์ ชื่อชั้นเรียน เช่น "com.example.project.ReportReceiver" อย่างไรก็ตาม เหมือนชวเลข ถ้าอักขระตัวแรกของชื่อคือจุด เช่น ".ReportReceiver" ต่อท้ายชื่อแพ็กเกจที่ระบุไว้ใน องค์ประกอบ <manifest>

เมื่อคุณเผยแพร่แอปพลิเคชันของคุณแล้ว อย่า เปลี่ยนชื่อนี้ เว้นแต่คุณจะตั้งค่า android:exported="false"

ไม่มีค่าเริ่มต้น ต้องระบุชื่อ

android:permission
ชื่อสิทธิ์ที่ผู้ออกอากาศจำเป็นต้องมีเพื่อส่ง ไปยัง Broadcast Receiver หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ไว้ สิทธิ์ที่กำหนดโดย ขององค์ประกอบ <application> ใช้แอตทริบิวต์ permission รายการ ไปยัง Broadcast Receiver หากไม่ได้ตั้งค่าแอตทริบิวต์ไว้ ตัวรับสัญญาณ ไม่ได้รับการคุ้มครองโดยสิทธิ์

ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ สิทธิ์ ในภาพรวมไฟล์ Manifest ของแอปและ เคล็ดลับความปลอดภัย

android:process
ชื่อกระบวนการที่ Broadcast Receiver ทำงาน โดยปกติแล้ว คอมโพเนนต์ทั้งหมดของแอปพลิเคชันจะทำงานในกระบวนการเริ่มต้นที่สร้างขึ้น สำหรับแอปพลิเคชัน มีชื่อเดียวกับแพ็กเกจแอปพลิเคชัน

ขององค์ประกอบ <application> แอตทริบิวต์ process สามารถตั้งค่า ค่าเริ่มต้นสำหรับทุกคอมโพเนนต์ แต่คอมโพเนนต์แต่ละอย่างสามารถแทนที่ค่าเริ่มต้น ด้วยแอตทริบิวต์ process ของตัวเองเพื่อ ช่วยให้คุณกระจายข้อมูล การใช้งานในหลายกระบวนการ

หากชื่อที่กำหนดให้กับแอตทริบิวต์นี้เริ่มต้นด้วยโคลอน (:) ซึ่งเป็นแบบส่วนตัวสำหรับแอปพลิเคชัน จะสร้างขึ้นเมื่อจำเป็น และ Broadcast Receiver จะทำงานในกระบวนการนั้น

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

เปิดตัวใน
API ระดับ 1