Thực hiện khả năng chi trả khẩn cấp

Tất cả các thiết bị di động được bán ở Ấn Độ từ ngày 1 tháng 1 năm 2017 đều phải cung cấp nút hoảng loạn để đáp ứng các yêu cầu của Bộ Viễn thông Ấn Độ (DoT). Để giải quyết các yêu cầu quy định này, Android bao gồm việc triển khai tham chiếu tính năng Khả năng chi trả khẩn cấp để kích hoạt nút hoảng loạn trên thiết bị Android.

Tính năng này được bật theo mặc định trong Android 8.0 và các bản phát hành cao hơn nhưng phải được vá vào các bản phát hành trước đó hiện có. Hiện tại, tính năng này chỉ nhắm mục tiêu đến các thiết bị được bán ở thị trường Ấn Độ nhưng có thể được đưa vào tất cả các thiết bị được bán trên toàn thế giới vì tính năng này không có hiệu lực bên ngoài Ấn Độ.

Ví dụ và nguồn

Tính năng Khả năng chi trả khẩn cấp được triển khai trong dự án khung/cơ sở Dự án nguồn mở Android (AOSP). Nó có sẵn trong nhánh chính và được bật theo mặc định trong Android 8.0 trở lên.

Tính năng này hiện có sẵn trong các nhánh và cam kết sau. Thông tin này được cung cấp để cho phép các nhà sản xuất thiết bị dễ dàng vá những thay đổi cần thiết vào các bản dựng hiện có của họ. Các nhà sản xuất thiết bị muốn triển khai tính năng chi trả khẩn cấp tham chiếu AOSP có thể chọn các cam kết từ các nhánh hiện hành vào bản dựng của riêng họ.

Bảng 1. Cherry-picks cho tính năng chi trả khẩn cấp tham chiếu AOSP

Chi nhánh Cam kết
chủ yếu e0c3c66 Đã thêm tính năng chi trả khẩn cấp
42a4338 Đã thêm bản dịch cho chuỗi hành động khẩn cấp
4df8d64 Đã khắc phục sự cố trong đó khả năng chi trả khẩn cấp hiển thị trên máy tính bảng
kẹo dẻo-dev e6680d9 Đã thêm tính năng chi trả khẩn cấp
95e1865 Đã thêm bản dịch cho chuỗi hành động khẩn cấp
a70bb89 Đã khắc phục sự cố trong đó khả năng chi trả khẩn cấp hiển thị trên máy tính bảng
marshmallow-dev cd22634 Đã thêm tính năng chi trả khẩn cấp
13f51c6 Đã thêm bản dịch cho chuỗi hành động khẩn cấp
6531666 Đã khắc phục sự cố trong đó khả năng chi trả khẩn cấp hiển thị trên máy tính bảng
kẹo mút-mr1-dev 5fbc86b Đã thêm tính năng chi trả khẩn cấp
1b60879 Đã thêm bản dịch cho chuỗi hành động khẩn cấp
d74366f Đã khắc phục sự cố trong đó khả năng chi trả khẩn cấp hiển thị trên máy tính bảng

Thực hiện

Tính năng Khả năng chi trả khẩn cấp không tạo ra thay đổi nào đối với các API được cung cấp thông qua Bộ công cụ phát triển phần mềm (SDK) Android. Khi được bật và kích hoạt, tính năng này cung cấp hai trình kích hoạt có thể bắt đầu cuộc gọi khẩn cấp tới 112, đây là số khẩn cấp duy nhất được sử dụng ở Ấn Độ và được quy định theo quy định của DoT Ấn Độ.

Cuộc gọi khẩn cấp được bắt đầu bởi:

Nhấn và giữ nút KHẨN CẤP
trên màn hình khóa
Nhấn vào tùy chọn Khẩn cấp
trong Menu hành động chung
nút khẩn cấp
Hình 1. Nút KHẨN CẤP trên màn hình khóa.
tùy chọn khẩn cấp
Hình 2. Hành động khẩn cấp trên Global Action Menu (truy cập bằng cách nhấn và giữ phím nguồn).

Tính năng này giới thiệu các thành phần nội bộ sau:

  • EmergencyAffordanceManager
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • EmergencyAffordanceService
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

Trình quản lý khả năng chi trả khẩn cấp

EmergencyAffordanceManager cung cấp API nội bộ để sử dụng tính năng Khả năng chi trả khẩn cấp. Nó cung cấp các phương thức để bắt đầu cuộc gọi khẩn cấp và truy vấn trong thời gian chạy xem tính năng này có nên được bật hay không.

  • void performEmergencyCall() . Bắt đầu cuộc gọi khẩn cấp.
  • boolean needsEmergencyAffordance() . Xác định xem tính năng này có nên được kích hoạt hay không.

Tính năng này có thể bị tắt vĩnh viễn tại thời điểm xây dựng bằng cách thay đổi hằng số EmergencyAffordanceManager.ENABLED thành false . Điều này sẽ khiến cho needsEmergencyAffordance() luôn trả về sai và ngăn không cho EmergencyAffordanceService bắt đầu.

Trường hợp khẩn cấpKhả năng chi trảDịch vụ

EmergencyAffordanceService là dịch vụ hệ thống giám sát Mã quốc gia di động (MCC) của tất cả các mạng di động được phát hiện và MCC của thẻ SIM đã cài đặt. Nếu bất kỳ thẻ SIM đã cài đặt hoặc mạng di động nào được phát hiện có MCC khớp với một trong các MCC của Ấn Độ (404 hoặc 405) thì tính năng này sẽ được bật. Điều này có nghĩa là tính năng này có thể được kích hoạt ở Ấn Độ ngay cả khi không có thẻ SIM. Người ta cho rằng mạng di động sẽ cho phép đăng ký các cuộc gọi khẩn cấp ngay cả khi không lắp thẻ SIM. Tính năng này sẽ vẫn được bật cho đến khi cài đặt SIM không phải của Ấn Độ và không có mạng nào được phát hiện có MCC phù hợp.

Các tài nguyên và cài đặt sau ảnh hưởng đến hoạt động của tính năng Khả năng chi trả khẩn cấp. Nếu loại cấu hình là:

  • Resource , nó là tài nguyên nội bộ được xác định trong frameworks/base/core/res/res/values/config.xml .
  • Setting , đó là cài đặt được lưu trữ trong nhà cung cấp cài đặt hệ thống.

Bảng 2. Các cài đặt ảnh hưởng đến hoạt động của tính năng chi trả khẩn cấp

Loại cấu hình Tên Sự miêu tả
Nguồn config_emergency_call_number Số điện thoại được tự động quay số khi cuộc gọi khẩn cấp được bắt đầu.
Kiểu: Chuỗi
Mặc định: 112
Nguồn config_emergency_mcc_codes Một mảng các số nguyên liệt kê các MCC mà tính năng này sẽ được kích hoạt.
Kiểu: Mảng số nguyên
Mặc định: {404,405}
Cài đặt số khẩn cấp_khả năng chi trả Ghi đè cài đặt chung bằng số cần gọi với khả năng chi trả khẩn cấp. Điều này sẽ chỉ có tác dụng đối với hình ảnh bản dựng có thể sửa lỗi (ví dụ: loại bản dựng là userdebug hoặc eng). Điều này chỉ nhằm mục đích thử nghiệm.
Kiểu: Chuỗi
Mặc định: chưa đặt
Cài đặt lực lượng_khẩn cấp_khả năng chi trả Cài đặt chung, liệu khả năng chi trả khẩn cấp có nên được hiển thị bất kể trạng thái thiết bị hay không. Điều này chỉ nhằm mục đích thử nghiệm.
Loại: Boolean (1 hoặc 0)
Mặc định: không đặt --> 0

Kích hoạt cuộc gọi khẩn cấp tới 112

Tính năng chi trả khẩn cấp kết nối cuộc gọi bằng trình quay số khẩn cấp để có thể kết nối cuộc gọi khi màn hình khóa đang hoạt động. Trình quay số khẩn cấp chỉ kết nối các cuộc gọi với danh sách các số được cung cấp bởi Lớp Giao diện Vô tuyến (RIL) thông qua thuộc tính hệ thống:

  • ril.ecclist khi chưa cài đặt SIM.
  • ril.ecclist SimSlotNumber khi lắp SIM và SimSlotNumber là ID khe cắm của thuê bao mặc định.

Các nhà sản xuất thiết bị sử dụng tính năng hỗ trợ khẩn cấp phải đảm bảo rằng các thiết bị ở Ấn Độ luôn bật 112 làm số khẩn cấp trong RIL.

Thẩm định

Trong khi thử nghiệm trên một bản dựng có thể sửa lỗi, số được gọi có thể được thay đổi bằng lệnh sau:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Mặc dù cài đặt này có thể được đặt trên bản dựng người dùng bình thường nhưng nó sẽ bị bỏ qua. Để thực sự kết nối cuộc gọi, số đó phải nằm trong danh sách các số khẩn cấp do RIL cung cấp. Điều này có thể được đặt tạm thời bằng cách sử dụng lệnh sau được thực thi từ shell gốc trên thiết bị userdebug:

setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"

Lệnh sau cũng có thể được sử dụng để buộc bật tính năng Khả năng chi trả khẩn cấp ngay cả khi không phát hiện thấy mạng di động Ấn Độ hoặc không lắp thẻ SIM Ấn Độ.

adb shell settings put global force_emergency_affordance 1

Tối thiểu, nên kiểm tra các trường hợp sau:

  • Sau khi được kích hoạt, nhấn và giữ nút KHẨN CẤP trên màn hình khóa (Hình 1) sẽ bắt đầu cuộc gọi đến số khẩn cấp được chỉ định.
  • Sau khi được kích hoạt, mục Khẩn cấp trên Menu Hành động Toàn cầu sẽ xuất hiện và nhấn vào mục đó sẽ bắt đầu cuộc gọi đến số khẩn cấp được chỉ định.
  • Tính năng này không được kích hoạt trong trường hợp không phát hiện được Mạng di động Ấn Độ có lắp thẻ SIM không phải của Ấn Độ.
  • Tính năng này được kích hoạt trên thiết bị khi lắp thẻ SIM Ấn Độ, bất kể mạng di động được phát hiện.
  • Tính năng này được kích hoạt trên thiết bị khi có Mạng di động Ấn Độ, bất kể thẻ SIM đã được lắp đặt.

Nếu một thiết bị hỗ trợ nhiều thẻ SIM, việc kiểm tra phải đảm bảo rằng tính năng phát hiện SIM MCC hoạt động chính xác trong từng khe cắm SIM. Tính năng Khả năng chi trả khẩn cấp không bị chi phối bởi khả năng tương thích của Android, do đó không có thử nghiệm Bộ kiểm tra khả năng tương thích (CTS) nào cho tính năng này.

Các câu hỏi thường gặp

Q. Số khẩn cấp 112 vẫn chưa được đưa vào sử dụng ở Ấn Độ. Có nên tiếp tục sử dụng nó không?

112 là số sẽ được sử dụng ở Ấn Độ làm Điểm trả lời an toàn công cộng (PSAP) theo định nghĩa của Hệ thống ứng phó và liên lạc khẩn cấp tích hợp (IECRS). Cho đến khi PSAP được đưa vào hoạt động, tất cả các cuộc gọi tới 112 sẽ được chuyển đến số khẩn cấp 100 hiện có (mặc dù đây là trách nhiệm của nhà mạng chứ không phải Android).

H. Còn các thao tác kích hoạt khác như nhấn nút nguồn ba lần thì sao?

Nhà sản xuất thiết bị có thể chọn triển khai các trình kích hoạt bổ sung. Tuy nhiên, mặc dù DoT Ấn Độ chấp thuận việc nhấn ba lần vào nút nguồn phần cứng, trình kích hoạt này không được hỗ trợ khi triển khai tham chiếu AOSP vì một số ứng dụng được sử dụng rộng rãi (ví dụ: ứng dụng Máy ảnh) sử dụng cử chỉ nút nguồn bao gồm việc nhấn nhiều lần vào nút nguồn. Các ứng dụng như vậy có thể gây trở ngại cho trình quay số khẩn cấp hoặc người dùng có thể vô tình kích hoạt nút hoảng loạn trong khi cố gắng kích hoạt các hành động trong các ứng dụng này.