ใช้การช่วยเหลือในกรณีฉุกเฉิน

อุปกรณ์เคลื่อนที่ทั้งหมดที่ขายในอินเดียตั้งแต่วันที่ 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 การดำเนินการฉุกเฉินใน เมนูการดำเนินการส่วนกลาง (เข้าถึงได้โดยการกดปุ่มเปิด/ปิดค้างไว้)

ฟีเจอร์นี้จะเปิดตัวคอมโพเนนต์ภายในต่อไปนี้

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

  • 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 เนื่องจากแอปที่ใช้กันอย่างแพร่หลายบางแอป (เช่น แอปกล้อง) ใช้ท่าทางสัมผัสปุ่มเปิด/ปิด ซึ่งรวมถึงการแตะปุ่มเปิด/ปิดซ้ำๆ แอปดังกล่าวอาจ รบกวนแป้นโทรฉุกเฉิน หรือผู้ใช้อาจกด ปุ่มแจ้งเตือนโดยไม่ตั้งใจขณะพยายามเรียกใช้การดำเนินการในแอปเหล่านี้