<ตัวรับ>

ไวยากรณ์:
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" >
    ...
ที่อยู่ใน:
สามารถมีข้อมูลต่อไปนี้

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"

องค์ประกอบ ของตัวเอง แอตทริบิวต์ enabled ที่ใช้กับแอตทริบิวต์ทั้งหมด คอมโพเนนต์ต่างๆ ของแอปพลิเคชัน รวมถึง Broadcast 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 ตั้งค่าแอตทริบิวต์นี้แล้ว เป็นการอ้างอิงไปยังทรัพยากรที่ถอนออกได้ที่มีคำจำกัดความของรูปภาพ หากไม่ได้ตั้งค่า ระบบจะใช้ไอคอนที่ระบุสำหรับแอปพลิเคชันโดยรวม แทน โปรดดู แอตทริบิวต์ icon ขององค์ประกอบ

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

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

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

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

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

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

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

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

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

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

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

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

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

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