Các thiết bị chạy Android 9 có thể nhận dạng thông tin nhà mạng đăng ký để cung cấp ID và tên nhà mạng. Android duy trì cơ sở dữ liệu ID nhà cung cấp dịch vụ, với các quy tắc so khớp cho từng nhà cung cấp dịch vụ và ID nhà cung cấp dịch vụ duy nhất của nhà cung cấp dịch vụ đó. AOSP bao gồm nội dung của cơ sở dữ liệu ID nhà cung cấp dịch vụ, trong tệp carrier_list.textpb
. Cơ sở dữ liệu hợp nhất giảm thiểu logic trùng lặp trong các ứng dụng cần xác định nhà cung cấp dịch vụ và hạn chế hiển thị các thuộc tính nhận dạng nhà cung cấp dịch vụ.
Để cải thiện phạm vi bao phủ và độ chính xác của nhận dạng nhà cung cấp dịch vụ, Android hỗ trợ cập nhật bảng ID nhà cung cấp dịch vụ và ngoài băng tần. Mỗi bản cập nhật đi kèm với số phiên bản và được xuất bản lên AOSP.
Thực hiện
Người dùng muốn triển khai các bản cập nhật ngoài băng tần có thể tải xuống tệp nhị phân carrier_list.pb
từ AOSP. Để xem định dạng có thể đọc được của bảng, hãy xem carrier_list.textpb
.
Đặt bảng ID nhà cung cấp dịch vụ vào phân vùng /data/misc/carrierid/
data của thiết bị. Nếu bảng ID nhà cung cấp dịch vụ mới hơn phiên bản hiện có, thiết bị sẽ duy trì bảng đó vào lớp cơ sở dữ liệu ID nhà cung cấp dịch vụ . Thông tin gần đây nhất từ cơ sở dữ liệu ID nhà cung cấp dịch vụ được chọn bằng các phương thức công khai getSimCarrierId()
và getSimCarrierIdName()
.
Thêm thông tin ID nhà mạng vào cơ sở dữ liệu
Để thêm hoặc cập nhật ID nhà cung cấp dịch vụ vào cơ sở dữ liệu, hãy gửi yêu cầu bằng cách sử dụng biểu mẫu thông tin nhận dạng nhà cung cấp dịch vụ .
Yêu cầu của bạn sẽ được xem xét và nếu được chấp thuận, thay đổi sẽ được đẩy đến cơ sở mã AOSP tại carrier_list.pb
. Sau đó, bạn có thể sao chép danh sách cập nhật và kết hợp nó vào bản dựng tùy chỉnh của mình.
Tích hợp ID nhà mạng với CarrierConfig
Bắt đầu từ Android 10, cấu hình nhà cung cấp dịch vụ hỗ trợ sử dụng ID nhà cung cấp dịch vụ làm khóa để tìm nạp cấu hình dành riêng cho nhà cung cấp dịch vụ từ CarrierService
.
Việc tích hợp ID nhà mạng với CarrierConfig
có những ưu điểm sau:
- Hợp nhất tất cả các cặp MCC/MNC cho mỗi nhà cung cấp dịch vụ vào một vị trí duy nhất để loại bỏ dữ liệu trùng lặp hoặc không nhất quán.
- Tạo mã định danh chuẩn cho từng nhà cung cấp dịch vụ và loại bỏ sự mơ hồ.
- Cho phép nhận dạng các nhà khai thác mạng ảo di động (MVNO) bằng các ID riêng lẻ thay vì có cấu hình như một phần của nhà khai thác mạng di động (MNO).
Di chuyển dữ liệu cấu hình sang ID nhà cung cấp dịch vụ
Để di chuyển dữ liệu cấu hình từ các cặp MCC/MNC sang ID nhà cung cấp dịch vụ, hãy làm theo các bước sau:
Nhóm các tệp
carrier_config_mccmnc.xml
từ một nhà cung cấp dịch vụ lại với nhau. Sử dụngcarrier_list.textpb
làm tham chiếu để ánh xạ thông tin MCC, MNC và MVNO tới một nhà cung cấp dịch vụ cụ thể.Hợp nhất các cấu hình thành một tập tin duy nhất.
(Tùy chọn) Kế thừa dữ liệu từ MNO. MVNO kế thừa cấu hình từ MNO trong tệp
carrier_config_mccmnc.xml
cũ. Vì ID nhà cung cấp dịch vụ cho phép tất cả các nhà cung cấp dịch vụ bao gồm MVNO có tệp cấu hình chuyên dụng nên bạn nên bao gồm dữ liệu MNO trong quá trình di chuyển.Nếu cấu hình cho ID nhà cung cấp MVNO không tồn tại, hãy tìm nạp cấu hình từ ID nhà cung cấp MNO bằng cách sử dụng
getCarrierIdFromSimMccMnc
.Đổi tên tệp mới thành
carrier_config_carrierid_ carrierid _ carriername .xml
trong đó carrierid phải tương ứng vớicanonical_id
và carriername phải tương ứng vớicarrier_name
trongcarrier_list.textpb