อุปกรณ์เคลื่อนที่ทั้งหมดที่จำหน่ายในอินเดียตั้งแต่วันที่ 1 มกราคม 2017 จะต้องมีปุ่มฉุกเฉินเพื่อให้เป็นไปตามข้อกำหนดของกระทรวงโทรคมนาคมของอินเดีย (DoT) เพื่อปฏิบัติตามข้อกำหนดด้านกฎระเบียบเหล่านี้ Android ได้รวมการใช้งานอ้างอิงของฟีเจอร์การจ่ายในกรณีฉุกเฉินเพื่อเปิดใช้ปุ่มฉุกเฉินในอุปกรณ์ Android
คุณลักษณะนี้เปิดใช้งานตามค่าเริ่มต้นใน Android 8.0 และรุ่นที่สูงกว่า แต่ต้องได้รับการแก้ไขในรุ่นก่อนหน้าที่มีอยู่ ปัจจุบัน คุณลักษณะนี้มีเป้าหมายเฉพาะกับอุปกรณ์ที่ขายในตลาดอินเดีย แต่สามารถรวมอยู่ในอุปกรณ์ทั้งหมดที่จำหน่ายทั่วโลก เนื่องจากคุณลักษณะนี้ไม่มีผลนอกประเทศอินเดีย
ตัวอย่างและที่มา
คุณลักษณะการจ่ายในกรณีฉุกเฉินถูกนำมาใช้ใน เฟรมเวิร์ก/โปรเจ็กต์ฐาน ของ Android Open Source Project (AOSP) มีให้บริการในสาขาหลักและเปิดใช้งานตามค่าเริ่มต้นใน Android 8.0 และรุ่นที่สูงกว่า
ปัจจุบันฟีเจอร์นี้พร้อมใช้งานในสาขาและคอมมิตต่อไปนี้ ข้อมูลนี้จัดทำขึ้นเพื่อให้ผู้ผลิตอุปกรณ์สามารถแก้ไขการเปลี่ยนแปลงที่จำเป็นในรุ่นที่มีอยู่ได้อย่างง่ายดาย ผู้ผลิตอุปกรณ์ที่ต้องการใช้คุณลักษณะการชำระเงินฉุกเฉินอ้างอิง AOSP สามารถเลือกคอมมิตจากสาขาที่เกี่ยวข้องลงในบิลด์ของตนเองได้
สาขา | มุ่งมั่น |
---|---|
หลัก | e0c3c66 เพิ่มคุณสมบัติการจ่ายฉุกเฉิน 42a4338 เพิ่มคำแปลสำหรับสตริงการดำเนินการฉุกเฉิน 4df8d64 แก้ไขปัญหาที่การชำระเงินฉุกเฉินจะแสดงบนแท็บเล็ต |
ตังเม-dev | e6680d9 เพิ่มคุณสมบัติการจ่ายฉุกเฉิน 95e1865 เพิ่มคำแปลสำหรับสตริงการดำเนินการฉุกเฉิน a70bb89 แก้ไขปัญหาที่การชำระเงินฉุกเฉินจะแสดงบนแท็บเล็ต |
มาร์ชแมลโลว์-dev | cd22634 เพิ่มคุณสมบัติการจ่ายฉุกเฉิน 13f51c6 เพิ่มคำแปลสำหรับสตริงการดำเนินการฉุกเฉิน 6531666 แก้ไขปัญหาที่การชำระเงินฉุกเฉินจะแสดงบนแท็บเล็ต |
อมยิ้ม-mr1-dev | 5fbc86b เพิ่มคุณสมบัติการจ่ายฉุกเฉิน 1b60879 เพิ่มคำแปลสำหรับสตริงการดำเนินการฉุกเฉิน d74366f แก้ไขปัญหาที่การชำระเงินฉุกเฉินจะแสดงบนแท็บเล็ต |
การนำไปปฏิบัติ
ฟีเจอร์การจ่ายในกรณีฉุกเฉินไม่มีการเปลี่ยนแปลงกับ API ที่เปิดเผยผ่านชุดพัฒนาซอฟต์แวร์ Android (SDK) เมื่อเปิดใช้งานและเปิดใช้งาน คุณลักษณะนี้จะมีทริกเกอร์สองตัวที่สามารถเริ่มต้นการโทรฉุกเฉินไปที่ 112 ซึ่งเป็นหมายเลขฉุกเฉินเดียวที่ใช้ในอินเดียและอยู่ภายใต้ข้อบังคับของ Indian DoT
การโทรฉุกเฉินจะเริ่มต้นโดย:
กดปุ่ม EMERGENCY ค้างไว้ บนหน้าจอล็อค | แตะตัวเลือก ฉุกเฉิน ในเมนูการดำเนินการโดยรวม |
---|---|
คุณลักษณะนี้จะแนะนำส่วนประกอบภายในต่อไปนี้:
- EmergencyAffordanceManager
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- EmergencyAffordanceService
frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
ผู้จัดการฝ่ายการจัดหาฉุกเฉิน
EmergencyAffordanceManager จัดเตรียม API ภายในเพื่อใช้คุณสมบัติ Emergency Affordance โดยมีวิธีการในการเริ่มต้นการโทรฉุกเฉินและการสอบถามขณะรันไทม์ว่าควรเปิดใช้งานคุณสมบัตินี้หรือไม่
-
void performEmergencyCall()
เริ่มการโทรฉุกเฉิน -
boolean needsEmergencyAffordance()
กำหนดว่าคุณลักษณะนี้ควรจะแอ็คทีฟหรือไม่
คุณลักษณะนี้อาจถูกปิดใช้งานอย่างถาวรในขณะสร้างโดยการเปลี่ยนค่าคงที่ EmergencyAffordanceManager.ENABLED
เป็น false
ซึ่งจะทำให้ needsEmergencyAffordance()
ส่งคืนค่าเท็จเสมอ และป้องกันไม่ให้ EmergencyAffordanceService
เริ่มทำงาน
บริการช่วยเหลือฉุกเฉิน
EmergencyAffordanceService
เป็นบริการระบบที่ตรวจสอบรหัสประเทศมือถือ (MCC) ของเครือข่ายโทรศัพท์เคลื่อนที่ทั้งหมดที่ตรวจพบและ MCC ของซิมการ์ดที่ติดตั้ง หากซิมการ์ดที่ติดตั้งหรือเครือข่ายมือถือที่ตรวจพบมี MCC ที่ตรงกับ MCC ของอินเดีย (404 หรือ 405) คุณสมบัตินี้จะเปิดใช้งาน ซึ่งหมายความว่าสามารถเปิดใช้งานคุณสมบัตินี้ได้ในอินเดียแม้ว่าจะไม่มีซิมการ์ดก็ตาม สันนิษฐานว่าเครือข่ายมือถือจะอนุญาตให้ลงทะเบียนการโทรฉุกเฉินได้แม้ว่าจะไม่ได้ติดตั้งซิมการ์ดก็ตาม คุณลักษณะนี้จะยังคงเปิดใช้งานจนกว่าจะติดตั้ง SIM ที่ไม่ใช่ของอินเดีย และไม่มีเครือข่ายใดที่ตรวจพบมี MCC ที่ตรงกัน
ทรัพยากรและการตั้งค่าต่อไปนี้ส่งผลต่อการทำงานของฟีเจอร์การจ่ายในกรณีฉุกเฉิน หากประเภทการกำหนดค่าคือ:
- Resource เป็นทรัพยากรภายในที่กำหนดใน
frameworks/base/core/res/res/values/config.xml
- การตั้งค่า เป็นการตั้งค่าที่จัดเก็บไว้ในผู้ให้บริการการตั้งค่าระบบ
ประเภทการกำหนดค่า | ชื่อ | คำอธิบาย |
---|---|---|
ทรัพยากร | config_emergency_call_number | หมายเลขโทรศัพท์ที่จะโทรออกโดยอัตโนมัติเมื่อมีการโทรฉุกเฉิน ประเภท: สตริง ค่าเริ่มต้น: 112 |
ทรัพยากร | config_emergency_mcc_codes | อาร์เรย์ของจำนวนเต็มที่แสดง MCC ที่ควรใช้งานคุณลักษณะนี้ ประเภท: อาร์เรย์ของจำนวนเต็ม ค่าเริ่มต้น: {404,405} |
การตั้งค่า | กรณีฉุกเฉิน_ราคาไม่แพง_หมายเลข | การตั้งค่าทั่วโลกแทนที่ด้วยหมายเลขที่จะโทรด้วยเงินฉุกเฉิน สิ่งนี้จะมีผลกับอิมเมจบิลด์ที่แก้ไขข้อบกพร่องได้เท่านั้น (เช่น ประเภทบิลด์คือ userdebug หรือ eng) สิ่งนี้มีไว้สำหรับการทดสอบเท่านั้น ประเภท: สตริง ค่าเริ่มต้น: ไม่ได้ตั้งค่า |
การตั้งค่า | Force_emergency_affordance | การตั้งค่าส่วนกลางว่าควรแสดงค่าใช้จ่ายฉุกเฉินโดยไม่คำนึงถึงสถานะของอุปกรณ์หรือไม่ สิ่งนี้มีไว้สำหรับการทดสอบเท่านั้น ประเภท: บูลีน (1 หรือ 0) ค่าเริ่มต้น: ไม่ได้ตั้งค่า --> 0 |
เปิดใช้งานการโทรฉุกเฉินไปที่ 112
คุณสมบัติการชำระเงินฉุกเฉินจะเชื่อมต่อการโทรโดยใช้แป้นโทรฉุกเฉิน เพื่อให้สามารถเชื่อมต่อการโทรได้เมื่อหน้าจอล็อคทำงานอยู่ ตัวเรียกเลขหมายฉุกเฉินจะเชื่อมต่อการโทรกับรายการหมายเลขที่ได้รับจาก Radio Interface Layer (RIL) ผ่านคุณสมบัติของระบบเท่านั้น:
-
ril.ecclist
เมื่อไม่ได้ติดตั้ง SIM -
ril.ecclist SimSlotNumber
เมื่อใส่ SIM และSimSlotNumber
คือ ID สล็อตของผู้สมัครสมาชิกเริ่มต้น
ผู้ผลิตอุปกรณ์ที่ใช้คุณสมบัติการชำระเงินฉุกเฉินต้องตรวจสอบให้แน่ใจว่าอุปกรณ์ในอินเดียเปิดใช้งาน 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
อย่างน้อยที่สุดขอแนะนำให้ทดสอบกรณีต่อไปนี้:
- เมื่อเปิดใช้งานแล้ว ให้กดปุ่ม EMERGENCY บนหน้าจอล็อคค้างไว้ (รูปที่ 1) เพื่อเริ่มต้นการโทรไปยังหมายเลขฉุกเฉินที่ระบุ
- เมื่อเปิดใช้งานแล้ว รายการ ฉุกเฉิน บนเมนูการดำเนินการโดยรวมจะปรากฏขึ้น และการแตะจะเป็นการเริ่มต้นการโทรไปยังหมายเลขฉุกเฉินที่ระบุ
- คุณสมบัตินี้ จะไม่ถูกเปิดใช้งาน หากไม่มีเครือข่ายมือถือของอินเดียที่ตรวจพบโดยติดตั้งซิมการ์ดที่ไม่ใช่ของอินเดีย
- คุณสมบัตินี้ จะเปิดใช้งาน บนอุปกรณ์เมื่อติดตั้งซิมการ์ดอินเดีย โดยไม่คำนึงถึงเครือข่ายมือถือที่ตรวจพบ
- คุณสมบัตินี้ เปิดใช้งาน บนอุปกรณ์เมื่อมีเครือข่ายมือถือของอินเดีย โดยไม่คำนึงถึงซิมการ์ดที่ติดตั้ง
หากอุปกรณ์รองรับซิมการ์ดหลายอัน การทดสอบควรตรวจสอบให้แน่ใจว่าการตรวจจับ SIM MCC ทำงานอย่างถูกต้องในแต่ละช่องใส่ซิม ฟีเจอร์การจ่ายในกรณีฉุกเฉินไม่ได้อยู่ภายใต้ความเข้ากันได้ของ Android ดังนั้นจึงไม่มีการทดสอบชุดทดสอบความเข้ากันได้ (CTS)
คำถามที่พบบ่อย
ถาม หมายเลขฉุกเฉิน 112 ยังไม่เปิดให้บริการในอินเดีย ยังควรใช้อยู่ไหม?
112 คือหมายเลขที่จะใช้ในอินเดียเป็นจุดตอบรับความปลอดภัยสาธารณะ (PSAP) ตามที่กำหนดโดยระบบการสื่อสารและการตอบสนองต่อเหตุฉุกเฉินแบบบูรณาการ (IECRS) จนกว่าจะเริ่มใช้ PSAP การโทรทั้งหมดไปที่ 112 จะถูกส่งไปยังหมายเลขฉุกเฉิน 100 ที่มีอยู่ (แม้ว่านี่จะเป็นความรับผิดชอบของผู้ให้บริการ ไม่ใช่ Android)
ถาม แล้วทริกเกอร์อื่นๆ เช่น การกดปุ่มเปิดปิดสามครั้งล่ะ
ผู้ผลิตอุปกรณ์อาจเลือกใช้ทริกเกอร์เพิ่มเติม อย่างไรก็ตาม ในขณะที่ Indian DoT อนุมัติการแตะสามครั้งที่ปุ่มเปิดปิดด้วยฮาร์ดแวร์ ทริกเกอร์นี้ ไม่รองรับ การใช้งานอ้างอิง AOSP เนื่องจากแอปพลิเคชันที่ใช้กันอย่างแพร่หลายบางตัว (เช่น แอปกล้อง) ใช้ท่าทางของปุ่มเปิดปิดซึ่งรวมถึงการแตะปุ่มเปิดปิดซ้ำหลายครั้ง แอปพลิเคชันดังกล่าวอาจรบกวนการทำงานของแป้นโทรฉุกเฉิน หรือผู้ใช้อาจกดปุ่มฉุกเฉินโดยไม่ตั้งใจขณะพยายามเรียกใช้การดำเนินการในแอปพลิเคชันเหล่านี้