อุปกรณ์เคลื่อนที่ทั้งหมดที่ขายในอินเดียตั้งแต่วันที่ 1 มกราคม 2017 ต้องมี ปุ่มขอความช่วยเหลือฉุกเฉินเพื่อให้เป็นไปตามข้อกำหนดของกรมโทรคมนาคม (DoT) ของอินเดีย Android มีการใช้งานอ้างอิงของฟีเจอร์การช่วยเหลือฉุกเฉินเพื่อเปิดใช้ปุ่มขอความช่วยเหลือฉุกเฉินในอุปกรณ์ Android เพื่อตอบสนองข้อกำหนดด้านกฎระเบียบเหล่านี้
ฟีเจอร์นี้จะเปิดใช้โดยค่าเริ่มต้นใน Android 8.0 ขึ้นไป แต่ ต้องมีการแก้ไขในบิลด์ที่มีอยู่ของรุ่นก่อนหน้า ฟีเจอร์นี้มีไว้สำหรับอุปกรณ์ที่ขายในตลาดอินเดียโดยเฉพาะ แต่สามารถรวมไว้ในอุปกรณ์ทั้งหมดที่ขายทั่วโลกได้เนื่องจากฟีเจอร์นี้จะไม่มีผลนอกอินเดีย
ตัวอย่างและแหล่งที่มา
ฟีเจอร์การเข้าถึงฉุกเฉินมีการใช้งานในโครงการโอเพนซอร์ส Android (AOSP) frameworks/base โดยฟีเจอร์นี้พร้อมใช้งานใน Branch รุ่นล่าสุดของ Android และเปิดใช้โดยค่าเริ่มต้นใน Android 8.0 ขึ้นไป
ฟีเจอร์นี้พร้อมใช้งานในสาขาและการคอมมิตต่อไปนี้ เราให้ข้อมูลนี้เพื่อให้ผู้ผลิตอุปกรณ์สามารถแก้ไขการเปลี่ยนแปลงที่จำเป็นลงในการสร้างที่มีอยู่ ผู้ผลิตอุปกรณ์ที่ต้องการ ใช้ฟีเจอร์การช่วยเหลือฉุกเฉินอ้างอิงของ AOSP สามารถเลือก คอมมิตจากสาขาที่เกี่ยวข้องลงในการสร้างของตนเองได้
ตารางที่ 1 เลือกฟีเจอร์ความสามารถในการรับมือกับเหตุฉุกเฉินของ AOSP
| สาขา | คอมมิต |
|---|---|
| android-latest-release | 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 ของอินเดีย
ระบบจะเริ่มการโทรหาหมายเลขฉุกเฉินในกรณีต่อไปนี้
| กดปุ่ม EMERGENCY บน หน้าจอล็อกค้างไว้ |
การแตะตัวเลือกฉุกเฉิน ใน เมนูการดำเนินการทั่วไป |
|---|---|
รูปที่ 1 ปุ่มฉุกเฉินบน หน้าจอล็อก |
รูปที่ 2 การดำเนินการฉุกเฉินใน เมนูการดำเนินการส่วนกลาง (เข้าถึงได้โดยการกดปุ่มเปิด/ปิดค้างไว้) |
ฟีเจอร์นี้จะเปิดตัวคอมโพเนนต์ภายในต่อไปนี้
EmergencyAffordanceManagerframeworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.javaEmergencyAffordanceServiceframeworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
EmergencyAffordanceManager
EmergencyAffordanceManager มี API ภายในสำหรับใช้ฟีเจอร์ความสามารถในการเข้าถึงฉุกเฉิน
โดยมีวิธีการเริ่มต้นการโทรฉุกเฉินและ
การค้นหาที่รันไทม์หากควรเปิดใช้ฟีเจอร์นี้
void performEmergencyCall()เริ่มการโทรหาหมายเลขฉุกเฉินboolean needsEmergencyAffordance()ระบุว่าควรเปิดใช้ฟีเจอร์ หรือไม่
คุณอาจปิดใช้ฟีเจอร์นี้อย่างถาวรในเวลาที่สร้างได้โดยเปลี่ยนค่าคงที่
EmergencyAffordanceManager.ENABLED เป็น false
ซึ่งจะทำให้ needsEmergencyAffordance() แสดงผล false เสมอ
และป้องกันไม่ให้ 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 | การลบล้างการตั้งค่าส่วนกลางด้วยหมายเลขที่จะโทรพร้อมการช่วยเหลือฉุกเฉิน
ซึ่งจะมีผลกับอิมเมจบิลด์ที่แก้ไขข้อบกพร่องได้เท่านั้น (กล่าวคือ build
type คือ userdebug หรือ eng) ซึ่งมีไว้สำหรับการทดสอบเท่านั้น ประเภท: สตริง ค่าเริ่มต้น: ไม่ได้ตั้งค่า |
| การเกริ่นนำ | force_emergency_affordance | การตั้งค่าส่วนกลางว่าจะให้แสดงฟีเจอร์ความสามารถในการจ่ายในกรณีฉุกเฉินหรือไม่
โดยไม่คำนึงถึงสถานะของอุปกรณ์ ซึ่งมีไว้สำหรับการทดสอบเท่านั้น ประเภท: บูลีน (1 หรือ 0) ค่าเริ่มต้น: ไม่ได้ตั้งค่า --> 0 |
เปิดใช้การโทรฉุกเฉินไปยังหมายเลข 112
ฟีเจอร์การเข้าถึงฉุกเฉินจะเชื่อมต่อการโทรโดยใช้แป้นโทรฉุกเฉินเพื่อให้เชื่อมต่อการโทรได้เมื่อหน้าจอล็อกทำงานอยู่ โปรแกรมโทรฉุกเฉินจะเชื่อมต่อการโทรไปยังรายการหมายเลขที่ เลเยอร์อินเทอร์เฟซวิทยุ (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) จึงไม่มีการทดสอบ CTS สำหรับฟีเจอร์นี้
คำถามที่พบบ่อย
ถาม ยังไม่มีการเปิดใช้หมายเลขฉุกเฉิน 112 ในอินเดีย ยังควรใช้ไหม
112 เป็นหมายเลขที่ใช้ในอินเดียเป็นจุดรับแจ้งเหตุความช่วยเหลือฉุกเฉิน (PSAP) ตามที่กำหนดโดยระบบการสื่อสารและการตอบสนองฉุกเฉินแบบบูรณาการ (IECRS) จนกว่าจะมีการมอบหมาย PSAP ระบบจะกำหนดเส้นทางสายโทรทั้งหมดไปยังหมายเลขฉุกเฉิน 112 ไปยังหมายเลขฉุกเฉิน 100 ที่มีอยู่ (แม้ว่าจะเป็นความรับผิดชอบของผู้ให้บริการ ไม่ใช่ Android)
ถาม แล้วทริกเกอร์อื่นๆ เช่น การกดปุ่มเปิด/ปิด 3 ครั้งล่ะ
ผู้ผลิตอุปกรณ์สามารถใช้ทริกเกอร์เพิ่มเติมได้ อย่างไรก็ตาม แม้ว่า DoT ของอินเดียจะอนุมัติการแตะปุ่มเปิด/ปิดของฮาร์ดแวร์ 3 ครั้ง แต่ทริกเกอร์นี้>ไม่รองรับ> ในการใช้งานอ้างอิงของ AOSP เนื่องจากแอปที่ใช้กันอย่างแพร่หลายบางแอป (เช่น แอปกล้อง) ใช้ท่าทางสัมผัสปุ่มเปิด/ปิด ซึ่งรวมถึงการแตะปุ่มเปิด/ปิดซ้ำๆ แอปดังกล่าวอาจ รบกวนแป้นโทรฉุกเฉิน หรือผู้ใช้อาจกด ปุ่มแจ้งเตือนโดยไม่ตั้งใจขณะพยายามเรียกใช้การดำเนินการในแอปเหล่านี้