Triển khai các hoạt động khẩn cấp

Tất cả thiết bị di động bán ở Ấn Độ kể từ ngày 1 tháng 1 năm 2017 phải có nút báo động để đáp ứng các yêu cầu của Bộ Thông tin và Truyền thông Ấn Độ (DoT). Để giải quyết các yêu cầu theo quy định này, Android cung cấp một cách triển khai tham chiếu của tính năng Emergency Affordance (Cơ hội sử dụng trong trường hợp khẩn cấp) để bật nút báo động trên thiết bị Android.

Tính năng này được bật theo mặc định trong các bản phát hành Android 8.0 trở lên, nhưng phải được vá vào các bản dựng hiện có của các bản phát hành trước đó. Tính năng này chỉ nhắm đến các thiết bị bán ở thị trường Ấn Độ, nhưng có thể được đưa vào tất cả các thiết bị 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 Cung cấp chức năng khẩn cấp được triển khai trong dự án khung/cơ sở của Dự án nguồn mở Android (AOSP). Tính năng này có trong nhánh chính và được bật theo mặc định trong các bản phát hành Android 8.0 trở lên.

Tính năng này có trong các nhánh và thay đổi sau. Thông tin này được cung cấp để giúp nhà sản xuất thiết bị dễ dàng vá các thay đổi cần thiết vào các bản dựng hiện có. Nhà sản xuất thiết bị muốn triển khai tính năng Emergency Affordance (Cơ hội khẩn cấp) tham chiếu AOSP có thể chọn các thay đổi từ các nhánh hiện hành vào bản dựng của riêng họ.

Bảng 1. Chọn lọc tính năng Cung cấp chức năng khẩn cấp tham chiếu AOSP

Chi nhánh Gửi
chính e0c3c66 Thêm tính năng Khả năng hỗ 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 vấn đề tính năng Khả năng hỗ trợ khẩn cấp sẽ hiển thị trên máy tính bảng
nougat-dev e6680d9 Thêm tính năng Khả năng hỗ 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 vấn đề tính năng Khả năng hỗ 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 Khả năng hỗ 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 vấn đề tính năng Khả năng hỗ trợ khẩn cấp hiển thị trên máy tính bảng
lollipop-mr1-dev 5fbc86b Thêm tính năng Khả năng hỗ 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 vấn đề tính năng Khả năng hỗ trợ khẩn cấp hiển thị trên máy tính bảng

Triển khai

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

Cuộc gọi khẩn cấp được bắt đầu bằng một trong hai cách sau:

Nhấn và giữ nút CẤP CỨU
trên màn hình khoá
Nhấn vào tuỳ chọn Khẩn cấp
trong Trình đơn thao tác chung
nút khẩn cấp

Hình 1. Nút KHẨN CẤP trên màn hình khoá.

tuỳ chọn khẩn cấp

Hình 2. Thao tác khẩn cấp trên Trình đơn thao tác toàn cầu (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
    

EmergencyAffordanceManager

EmergencyAffordanceManager cung cấp một API nội bộ để sử dụng tính năng Emergency Affordance. Thư viện này 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 nếu bạn bật tính năng này.

  • 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ó đang hoạt động hay không.

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

EmergencyAffordanceService

EmergencyAffordanceService là một dịch vụ hệ thống theo dõi Mã quốc gia trên thiết bị 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à bạn có thể bật tính năng này ở Ấn Độ ngay cả khi không có thẻ SIM. Giả sử mạng di động cho phép đăng ký cuộc gọi khẩn cấp ngay cả khi không cài đặt thẻ SIM. Tính năng này vẫn được bật cho đến khi bạn lắp thẻ SIM không phải của Ấn Độ và không có mạng nào được phát hiện có mã MCC khớp.

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

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

Bảng 2. Các chế độ cài đặt ảnh hưởng đến hành vi của tính năng Cung cấp chức năng khẩn cấp

Loại cấu hình Tên Mô tả
Tài nguyê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.
Loại: Chuỗi
Mặc định: 112
Tài nguyên config_emergency_mcc_codes Một mảng Số nguyên liệt kê các MCC mà tính năng này sẽ hoạt động.
Loại: Mảng số nguyên
Mặc định: {404,405}
Xem xét emergency_affordance_number Chế độ cài đặt chung ghi đè bằng số điện thoại cần gọi bằng tính năng hỗ trợ khẩn cấp. Điều này chỉ ảnh hưởng đến hình ảnh bản dựng có thể gỡ lỗi (tức là loại bản dựng là userdebug hoặc eng). Điều này chỉ dành cho mục đích thử nghiệm.
Loại: Chuỗi
Mặc định: chưa đặt
Xem xét force_emergency_affordance Chế độ cài đặt chung, liệu tính năng Khả năng hỗ trợ khẩn cấp có hiển thị bất kể trạng thái thiết bị hay không. Điều này chỉ dành cho mục đích thử nghiệm.
Loại: Boolean (1 hoặc 0)
Mặc định: chưa đặt --> 0

Bật tính năng gọi khẩn cấp đến số 112

Tính năng Cung cấp chức năng khẩn cấp kết nối cuộc gọi bằng cách sử dụng trình quay số khẩn cấp để có thể kết nối cuộc gọi khi màn hình khoá đ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 số do Lớp giao diện vô tuyến (RIL) cung cấp thông qua thuộc tính hệ thống:

  • ril.ecclist khi không có SIM được cài đặt.
  • ril.ecclistSimSlotNumber khi bạn lắp thẻ SIM và SimSlotNumber là mã khe của người đăng ký mặc định.

Nhà sản xuất thiết bị sử dụng tính năng Khả 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ố điện thoại khẩn cấp trong RIL.

Xác nhận kết quả

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

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

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

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

Bạn cũng có thể sử dụng lệnh sau để buộc bật tính năng Khả năng hỗ 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

Bạn nên kiểm thử ít nhất các trường hợp sau:

  • Khi được kích hoạt, thao tác nhấn và giữ nút KHẨN CẤP trên màn hình khoá (Hình 1) sẽ bắt đầu cuộc gọi đến số điện thoại khẩn cấp đã chỉ định.
  • Khi được kích hoạt, mục Khẩn cấp trên Trình đơn thao tác chung sẽ xuất hiện và khi nhấn vào mục này, một cuộc gọi đến số điện thoại khẩn cấp đã chỉ định sẽ được bắt đầu.
  • Tính năng này không được kích hoạt khi không phát hiện thấy Mạng di động Ấn Độ và bạn đã 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 bạn cài đặt thẻ SIM Ấn Độ, bất kể mạng di động được phát hiện là gì.
  • 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 nào được cài đặt.

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

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

Hỏi: Số điện thoại khẩn cấp 112 chưa được triển khai ở Ấn Độ. Bạn có nên tiếp tục sử dụng không?

112 là số điện thoại được dùng ở Ấn Độ làm Trung tâm cứu hộ công cộng (PSAP) theo định nghĩa của Hệ thống tích hợp phản hồi và thông tin liên lạc khẩn cấp (IECRS). Cho đến khi PSAP được uỷ quyền, tất cả cuộc gọi đến 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ỏi: Còn các trình kích hoạt khác như nhấn ba lần vào nút nguồn thì sao?

Nhà sản xuất thiết bị có thể triển khai các điều kiện kích hoạt bổ sung. Tuy nhiên, mặc dù DoT Ấn Độ phê duyệt thao tác nhấn ba lần vào nút nguồn phần cứng, nhưng trình kích hoạt này không được hỗ trợ trong quá trình 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ác cử chỉ nút nguồn bao gồm cả thao tác nhấn liên tục vào nút nguồn. Các ứng dụng như vậy có thể can thiệp vào 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 báo động khi cố gắng kích hoạt các hành động trong các ứng dụng này.