อุปกรณ์เคลื่อนที่ทั้งหมดที่ขายในอินเดียตั้งแต่วันที่ 1 มกราคม 2017 ต้องมีปุ่มสัญญาณเตือนเพื่อให้เป็นไปตามข้อกำหนดของกระทรวงโทรคมนาคม (DoT) ของอินเดีย Android มีการอ้างอิงการใช้งานฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินเพื่อเปิดใช้ปุ่มสัญญาณเตือนภัยในอุปกรณ์ Android เพื่อปฏิบัติตามข้อกำหนดด้านกฎระเบียบเหล่านี้
ฟีเจอร์นี้เปิดใช้งานโดยค่าเริ่มต้นใน Android 8.0 ขึ้นไป แต่ต้องได้รับการแก้ไขในบิลด์ที่มีอยู่ของรุ่นก่อนหน้า ฟีเจอร์นี้มุ่งเป้าไปยังอุปกรณ์ที่ขายในตลาดอินเดียโดยเฉพาะ แต่สามารถรวมไว้ในอุปกรณ์ทั้งหมดที่ขายทั่วโลกได้ เนื่องจากฟีเจอร์นี้ไม่มีผลนอกอินเดีย
ตัวอย่างและแหล่งที่มา
ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินมีการใช้งานในโปรเจ็กต์frameworks/base ของโครงการโอเพนซอร์ส Android (AOSP) ฟีเจอร์นี้พร้อมใช้งานในสาขาหลักและเปิดใช้โดยค่าเริ่มต้นในรุ่น Android 8.0 ขึ้นไป
ฟีเจอร์นี้มีให้บริการในสาขาและคอมมิตต่อไปนี้ ข้อมูลนี้จัดทำขึ้นเพื่อให้ผู้ผลิตอุปกรณ์สามารถแก้ไขการเปลี่ยนแปลงที่จำเป็นในบิลด์ที่มีอยู่ได้อย่างง่ายดาย ผู้ผลิตอุปกรณ์ที่ต้องการใช้ฟีเจอร์การช่วยเหลือพิเศษในกรณีฉุกเฉินตามข้อมูลอ้างอิงของ AOSP จะเลือกคอมมิตจากสาขาที่เกี่ยวข้องมาใส่ไว้ในบิลด์ของตนเองได้
ตารางที่ 1 เลือกมาเพื่ออ้างอิงฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินของ AOSP
สาขา | คอมมิต |
---|---|
หลัก | e0c3c66
เพิ่มฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน 42a4338 เพิ่มคำแปลสำหรับสตริงการดำเนินการในกรณีฉุกเฉิน 4df8d64 แก้ไขปัญหาที่ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินจะแสดงในแท็บเล็ต |
nougat-dev | e6680d9
เพิ่มฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน 95e1865 เพิ่มคำแปลสำหรับสตริงการดำเนินการในกรณีฉุกเฉิน a70bb89 แก้ไขปัญหาที่ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินจะแสดงในแท็บเล็ต |
marshmallow-dev | cd22634
เพิ่มฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน 13f51c6 เพิ่มคำแปลสำหรับสตริงการดำเนินการในกรณีฉุกเฉิน 6531666 แก้ไขปัญหาที่ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินจะแสดงในแท็บเล็ต |
lollipop-mr1-dev | 5fbc86b
เพิ่มฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน 1b60879 เพิ่มคำแปลสำหรับสตริงการดำเนินการในกรณีฉุกเฉิน d74366f แก้ไขปัญหาที่ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินจะแสดงในแท็บเล็ต |
การใช้งาน
ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินจะไม่เปลี่ยนแปลง API ที่แสดงผ่านชุดพัฒนาซอฟต์แวร์ (SDK) ของ Android เมื่อเปิดใช้และเปิดใช้งานแล้ว ฟีเจอร์นี้จะทริกเกอร์ 2 รายการที่เริ่มการโทรฉุกเฉินไปยังหมายเลข 112 ซึ่งเป็นหมายเลขฉุกเฉินหมายเลขเดียวที่จะใช้ในอินเดียและกำหนดโดยกฎระเบียบของ DoT อินเดีย
การโทรหาหมายเลขฉุกเฉินจะเริ่มต้นด้วยการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
กดปุ่มเหตุฉุกเฉิน บนหน้าจอล็อกค้างไว้ |
การแตะตัวเลือกเหตุฉุกเฉิน ใน เมนูการทำงานแบบรวม |
---|---|
![]() รูปที่ 1 ปุ่ม "เหตุฉุกเฉิน" ในหน้าจอล็อก |
![]() รูปที่ 2 การดำเนินการในกรณีฉุกเฉินเปิดอยู่ เมนูการดำเนินการแบบรวม (เข้าถึงได้โดยกดปุ่มเปิด/ปิดค้างไว้) |
ฟีเจอร์นี้จะเปิดตัวคอมโพเนนต์ภายในต่อไปนี้
- EmergencyAffordanceManager
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- EmergencyAffordanceService
frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
EmergencyAffordanceManager
EmergencyAffordanceManager มี API ภายในสำหรับใช้ฟีเจอร์ EmergencyAffordance โดยจะมีวิธีการเริ่มการโทรฉุกเฉินและการค้นหาขณะรันไทม์ว่าควรเปิดใช้ฟีเจอร์หรือไม่
void performEmergencyCall()
เริ่มการโทรหาหมายเลขฉุกเฉินboolean needsEmergencyAffordance()
. กำหนดว่าฟีเจอร์ควรทำงานหรือไม่
ฟีเจอร์อาจปิดใช้อย่างถาวรเมื่อสร้างโดยเปลี่ยนค่าคงที่ EmergencyAffordanceManager.ENABLED
เป็น false
ซึ่งจะทำให้ needsEmergencyAffordance()
แสดงผลลัพธ์เป็นเท็จเสมอ และป้องกันไม่ให้ EmergencyAffordanceService
เริ่มทำงาน
EmergencyAffordanceService
EmergencyAffordanceService
เป็นบริการของระบบที่ตรวจสอบรหัสประเทศของเครือข่ายมือถือ (MCC) ทั้งหมดที่ตรวจพบและ MCC ของซิมการ์ดที่ติดตั้ง หากซิมการ์ดที่ติดตั้งหรือเครือข่ายมือถือที่ตรวจพบมี MCC ที่ตรงกับ MCC ของอินเดีย (404 หรือ 405) ฟีเจอร์จะเปิดใช้ ซึ่งหมายความว่าคุณเปิดใช้ฟีเจอร์นี้ได้ในอินเดียแม้ว่าจะไม่มีซิมการ์ดก็ตาม ระบบจะถือว่าเครือข่ายมือถืออนุญาตให้ลงทะเบียนสำหรับการโทรฉุกเฉินได้แม้จะไม่ได้ติดตั้งซิมการ์ดก็ตาม ฟีเจอร์นี้จะเปิดใช้ต่อไปจนกว่าจะมีการใส่ซิมที่ไม่ได้มาจากอินเดียและเครือข่ายที่ตรวจพบไม่มี MCC ที่ตรงกัน
แหล่งข้อมูลและการตั้งค่าต่อไปนี้ส่งผลต่อลักษณะการทำงานของฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน หากประเภทการกําหนดค่าคือ
- ทรัพยากร เป็นทรัพยากรภายในที่กําหนดไว้ใน
frameworks/base/core/res/res/values/config.xml
- การตั้งค่า คือการตั้งค่าที่จัดเก็บไว้ในผู้ให้บริการการตั้งค่าระบบ
ตารางที่ 2 การตั้งค่าที่ส่งผลต่อลักษณะการทํางานของฟีเจอร์การช่วยเหลือในกรณีฉุกเฉิน
ประเภทการกําหนดค่า | ชื่อ | คำอธิบาย |
---|---|---|
ทรัพยากร | config_emergency_call_number | หมายเลขโทรศัพท์ที่จะโทรออกโดยอัตโนมัติเมื่อเริ่มการโทรฉุกเฉิน ประเภท: สตริง ค่าเริ่มต้น: 112 |
ทรัพยากร | config_emergency_mcc_codes | อาร์เรย์จำนวนเต็มที่แสดง MCC ที่ฟีเจอร์ควรทำงาน ประเภท: อาร์เรย์ของจำนวนเต็ม ค่าเริ่มต้น: {404,405} |
การเกริ่นนำ | emergency_affordance_number | การตั้งค่าส่วนกลางลบล้างด้วยหมายเลขที่จะโทรด้วยการแสดงผลที่พร้อมใช้งานในกรณีฉุกเฉิน ซึ่งจะมีผลกับอิมเมจบิลด์ที่แก้ไขข้อบกพร่องได้เท่านั้น (นั่นคือ ประเภทบิลด์คือ userdebug หรือ eng) การดำเนินการนี้มีไว้เพื่อการทดสอบเท่านั้น ประเภท: สตริง ค่าเริ่มต้น: unset |
การเกริ่นนำ | force_emergency_affordance | การตั้งค่าส่วนกลางว่าควรแสดงฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินหรือไม่ ไม่ว่าสถานะของอุปกรณ์จะเป็นอย่างไร การดำเนินการนี้มีไว้เพื่อการทดสอบเท่านั้น ประเภท: บูลีน (1 หรือ 0) ค่าเริ่มต้น: unset --> 0 |
เปิดใช้การโทรหาหมายเลขฉุกเฉิน 112
ฟีเจอร์การช่วยเหลือพิเศษในกรณีฉุกเฉินจะเชื่อมต่อการโทรโดยใช้เครื่องมือโทรฉุกเฉินเพื่อให้โทรได้เมื่อหน้าจอล็อกทำงานอยู่ ตัวโทรหาหมายเลขฉุกเฉินจะเชื่อมต่อการโทรกับหมายเลขในรายการที่ Radio Interface Layer (RIL) ระบุผ่านพร็อพเพอร์ตี้ระบบเท่านั้น ดังนี้
ril.ecclist
เมื่อไม่ได้ติดตั้งซิมril.ecclistSimSlotNumber
เมื่อใส่ซิม และSimSlotNumber
คือรหัสช่องของสมาชิกเริ่มต้น
ผู้ผลิตอุปกรณ์ที่ใช้ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินต้องตรวจสอบว่าอุปกรณ์ในอินเดียเปิดใช้ 112 เป็นหมายเลขฉุกเฉินใน RIL เสมอ
การตรวจสอบความถูกต้อง
ขณะทดสอบบนบิลด์ที่แก้ไขข้อบกพร่องได้ คุณสามารถเปลี่ยนหมายเลขที่เรียกใช้ได้ด้วยคําสั่งต่อไปนี้
adb shell settings put global emergency_affordance_number NUMBER_TO_CALL
แม้ว่าจะตั้งค่านี้ได้ในบิลด์ผู้ใช้ทั่วไป แต่ระบบจะไม่สนใจการตั้งค่านี้ หากต้องการโทรออกจริงๆ หมายเลขต้องอยู่ในรายการหมายเลขฉุกเฉินที่ RIL ระบุ ซึ่งสามารถตั้งค่าชั่วคราวได้โดยใช้คำสั่งต่อไปนี้ที่เรียกใช้จากเชลล์รูทในอุปกรณ์ userdebug
setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"
นอกจากนี้ คุณยังใช้คำสั่งต่อไปนี้เพื่อบังคับให้เปิดใช้ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินได้แม้ว่าจะไม่มีการตรวจพบเครือข่ายมือถือของอินเดียหรือไม่ได้ใส่ซิมการ์ดของอินเดีย
adb shell settings put global force_emergency_affordance 1
เราขอแนะนำให้ทดสอบกรณีต่อไปนี้เป็นอย่างน้อย
- เมื่อเปิดใช้งานแล้ว การกดปุ่มเหตุฉุกเฉินบนหน้าจอล็อกค้างไว้ (รูปที่ 1) จะเป็นการโทรหาหมายเลขฉุกเฉินที่ระบุ
- เมื่อเปิดใช้งาน รายการเหตุฉุกเฉินจะปรากฏในเมนูการดำเนินการแบบรวม และการแตะรายการดังกล่าวจะเป็นการเริ่มโทรหาหมายเลขฉุกเฉินที่ระบุ
- ฟีเจอร์จะไม่เปิดใช้งานหากไม่มีเครือข่ายมือถือของอินเดียที่ตรวจพบขณะติดตั้งซิมการ์ดที่ไม่ใช่ของอินเดีย
- ฟีเจอร์จะเปิดใช้งานในอุปกรณ์เมื่อติดตั้งซิมการ์ดของอินเดีย ไม่ว่าจะตรวจพบเครือข่ายมือถือใดก็ตาม
- ฟีเจอร์จะเปิดใช้งานในอุปกรณ์เมื่อมีเครือข่ายมือถือของอินเดีย ไม่ว่าจะติดตั้งซิมการ์ดใดก็ตาม
หากอุปกรณ์รองรับซิมการ์ดหลายใบ การทดสอบควรตรวจสอบว่าการตรวจหา MCC ของซิมทำงานได้อย่างถูกต้องในช่องซิมแต่ละช่อง ฟีเจอร์การช่วยเหลือในกรณีฉุกเฉินไม่ได้อยู่ภายใต้ความเข้ากันได้ของ Android จึงไม่มีการทดสอบชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) สำหรับฟีเจอร์นี้
คำถามที่พบบ่อย
ถาม หมายเลขฉุกเฉิน 112 ยังไม่พร้อมใช้งานในอินเดีย ควรใช้แอตทริบิวต์นี้ต่อไปไหม
112 เป็นหมายเลขที่ใช้ในอินเดียเป็นจุดรับแจ้งเหตุความช่วยเหลือฉุกเฉิน (PSAP) ตามที่กำหนดไว้ในระบบการสื่อสารและการตอบสนองต่อเหตุฉุกเฉินแบบรวม (IECRS) ในระหว่างนี้ ระบบจะส่งสายเรียกเข้าหมายเลข 112 ทั้งหมดไปยังหมายเลขฉุกเฉิน 100 ที่มีอยู่ (แม้ว่านี่จะเป็นหน้าที่ของผู้ให้บริการ ไม่ใช่ Android)
ถาม แล้วทริกเกอร์อื่นๆ เช่น การกดปุ่มเปิด/ปิด 3 ครั้งล่ะ
ผู้ผลิตอุปกรณ์สามารถใช้ทริกเกอร์เพิ่มเติมได้ อย่างไรก็ตาม แม้ว่า DoT ของอินเดียจะอนุมัติการแตะปุ่มเปิด/ปิดฮาร์ดแวร์ 3 ครั้ง แต่ระบบไม่รองรับทริกเกอร์นี้ในการใช้งานตามข้อมูลอ้างอิงของ AOSP เนื่องจากแอปที่ใช้กันอย่างแพร่หลายบางแอป (เช่น แอปกล้อง) ใช้ท่าทางสัมผัสปุ่มเปิด/ปิดซึ่งรวมถึงการแตะปุ่มเปิด/ปิดซ้ำๆ แอปดังกล่าวอาจรบกวนเครื่องมือโทรฉุกเฉิน หรือผู้ใช้อาจเปิดปุ่มสัญญาณเตือนภัยโดยไม่ตั้งใจขณะพยายามเรียกให้ดำเนินการในแอปเหล่านี้