Tất cả thiết bị di động được bán ở Ấn Độ từ ngày 1 tháng 1 năm 2017 đều phải có nút báo động để đáp ứng các yêu cầu của Bộ Viễn thông Ấn Độ (DoT). Để đáp ứng các yêu cầu pháp lý này, Android có một bản triển khai tham chiếu của tính năng Emergency Affordance (Hỗ trợ khẩn cấp) nhằm cho phép nút báo động trên các 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ị đượ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 Thao tác khẩn cấp được triển khai trong dự án frameworks/base của Dự án nguồn mở Android (AOSP). R8 có trong nhánh phát hành mới nhất của Android 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à 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ị 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 Tham chiếu AOSP cho thao tác khẩn cấp có thể chọn lọc 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. Chọn lựa tính năng Emergency Affordance (Thao tác khẩn cấp) tham chiếu cho AOSP
| Chi nhánh | Cam kết |
|---|---|
| android-latest-release | e0c3c66
Đã thêm tính năng Thao tác khẩn cấp 42a4338 Đã thêm bản dịch cho chuỗi thao tác khẩn cấp 4df8d64 Khắc phục vấn đề trong đó tính năng Thao tác khẩn cấp sẽ xuất hiện trên máy tính bảng |
| nougat-dev | e6680d9
Đã thêm tính năng Thao tác khẩn cấp 95e1865 Đã thêm bản dịch cho chuỗi thao tác khẩn cấp a70bb89 Đã khắc phục vấn đề khiến tính năng Thao tác khẩn cấp xuất hiện trên máy tính bảng |
| marshmallow-dev | cd22634
Đã thêm tính năng Thao tác khẩn cấp 13f51c6 Đã thêm bản dịch cho chuỗi thao tác khẩn cấp 6531666 Khắc phục vấn đề khiến tính năng Thao tác khẩn cấp xuất hiện trên máy tính bảng |
| lollipop-mr1-dev | 5fbc86b
Thêm tính năng Thao tác khẩn cấp 1b60879 Thêm bản dịch cho chuỗi thao tác khẩn cấp d74366f Khắc phục vấn đề trong đó tính năng Thao tác khẩn cấp sẽ xuất hiện trên máy tính bảng |
Triển khai
Tính năng Thao tác khẩn cấp không có thay đổi nào đối với các API được cung cấp thông qua Bộ 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 sẽ cung cấp 2 cơ chế 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à bắt buộc theo quy định của Bộ Viễn thông Ấn Độ.
Cuộc gọi khẩn cấp được thực hiện theo một trong hai cách:
| Nhấn và giữ nút KHẨN CẤP trên màn hình khoá |
Nhấn vào lựa chọn Khẩn cấp trong Trình đơn thao tác chung |
|---|---|
Hình 1. Nút KHẨN CẤP trên màn hình khoá. |
Hình 2. Hành động khẩn cấp trên Trình đơn thao tác chung (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:
EmergencyAffordanceManagerframeworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.javaEmergencyAffordanceServiceframeworks/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 Thao tác 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 nếu tính năng này cần được bật.
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ó 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ằng cách thay đổi hằng số EmergencyAffordanceManager.ENABLED thành false.
Điều này khiến needsEmergencyAffordance() luôn trả về false và ngăn EmergencyAffordanceService bắt đầu.
EmergencyAffordanceService
EmergencyAffordanceService là một dịch vụ hệ thống giám sát 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 các thẻ SIM đã lắp. Nếu bất kỳ thẻ SIM đã lắp 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 lắp thẻ SIM. Tính năng này vẫn bật cho đến khi bạn lắp một thẻ SIM không phải của Ấn Độ và không có mạng nào được phát hiện có mã quốc gia (MCC) trùng 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 Lối tắt khẩn cấp. Nếu loại cấu hình là:
- Tài nguyên: Một tài nguyên nội bộ được xác định trong
frameworks/base/core/res/res/values/config.xml. - Chế độ cài đặt: Chế độ cài đặt được lưu trữ trong trình cung cấp chế độ 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 Thao tác 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 quay số tự động khi cuộc gọi khẩn cấp được thực hiện. 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 để gọi bằng tính năng khẩn cấp. Điều này chỉ ảnh hưởng đến các hình ảnh có thể gỡ lỗi (tức là loại bản dựng là userdebug hoặc eng). Đây chỉ là thông báo dùng 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, cho dù tính năng Thao tác khẩn cấp có được hiển thị hay không, bất kể trạng thái của thiết bị. Đây chỉ là thông báo dùng 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 Thao tác khẩn cấp kết nối cuộc gọi bằng trình quay số khẩn cấp để cuộc gọi có thể kết nố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 đến danh sách số điện thoại do Lớp giao diện vô tuyến (RIL) cung cấp thông qua thuộc tính hệ thống:
ril.ecclistkhi không có SIM nào được cài đặt.ril.ecclistSimSlotNumberkhi lắp SIM vàSimSlotNumberlà mã nhận dạng 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 Thao tác khẩn cấp phải xác minh rằng các thiết bị ở Ấn Độ luôn bật số 112 làm số khẩn cấp trong RIL.
Xác nhận kết quả
Trong khi kiểm thử trên 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ố 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ừ shell gốc trên thiết bị userdebug:
setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"
Bạn cũng có thể dùng lệnh sau để buộc bật tính năng Thao tác khẩn cấp ngay cả khi không phát hiện thấy mạng di động của Ấn Độ hoặc không lắp thẻ SIM của Ấn Độ.
adb shell settings put global force_emergency_affordance 1
Bạn nên kiểm thử tối thiểu 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 sẽ xuất hiện trên Trình đơn thao tác chung và khi bạn nhấn vào mục này, một cuộc gọi sẽ được thực hiện đến số điện thoại khẩn cấp đã chỉ định.
- Tính năng này không được kích hoạt nếu không phát hiện thấy Mạng di động Ấn Độ khi đã 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 lắp thẻ SIM của Ấn Độ, bất kể mạng di động được phát hiện là mạng nào.
- 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ài đặt là gì.
Nếu một thiết bị hỗ trợ nhiều thẻ SIM, thì quá trình kiểm thử phải xác minh rằng tính năng phát hiện mã quốc gia của nhà mạng (MCC) của SIM hoạt động chính xác trong từng khe cắm SIM. Tính năng Thao tác khẩn cấp không chịu sự quản lý của Bộ kiểm tra tính tương thích (CTS) với Android, nên không có các kiểm thử CTS cho tính năng này.
Câu hỏi thường gặp
Hỏi: Số khẩn cấp 112 chưa được đưa vào sử dụng ở Ấn Độ. Tôi 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 nhận cuộc gọi cứu hộ công cộng (PSAP) theo định nghĩa của Hệ thống liên lạc và ứng phó khẩn cấp tích hợp (IECRS). Cho đến khi PSAP được đưa vào hoạt động, tất cả cuộc gọi đến số 112 đều đượ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 những thao tác kích hoạt khác như nhấn nút nguồn 3 lầ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ù Bộ Viễn thông Ấn Độ (DoT) phê duyệt việc nhấn nút nguồn phần cứng 3 lần, nhưng cơ chế 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 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 nút nguồn nhiều lần. Những ứ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 báo động trong khi cố gắng kích hoạt các hành động trong những ứng dụng này.