Các thiết bị chạy Android 9 có thể nhận dạng thông tin về nhà mạng của gói thuê bao để cung cấp mã nhận dạng và tên nhà mạng. Android duy trì một cơ sở dữ liệu mã nhận dạng nhà mạng, với các quy tắc so khớp cho từng nhà mạng và mã nhận dạng nhà mạng riêng biệt của nhà mạng đó. AOSP bao gồm nội dung của cơ sở dữ liệu mã nhận dạng nhà mạng trong tệp carrier_list.textpb
.
Cơ sở dữ liệu hợp nhất giúp giảm thiểu logic trùng lặp trong các ứng dụng cần xác định nhà mạng và giới hạn việc hiển thị các thuộc tính xác định nhà mạng.
Để cải thiện phạm vi và độ chính xác của việc nhận dạng nhà mạng, Android hỗ trợ các bản cập nhật bảng nhận dạng nhà mạng và ngoài băng tần. Mỗi bản cập nhật đều có một số phiên bản và được xuất bản lên AOSP.
Triển khai
Những 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 tệp nhị phân carrier_list.pb
xuống từ AOSP. Để xem định dạng dễ đọc của bảng, hãy xem carrier_list.textpb
.
Đặt bảng mã nhận dạng nhà mạng trong phân vùng dữ liệu /data/misc/carrierid/
của thiết bị. Nếu bảng mã nhận dạng nhà mạng mới hơn phiên bản hiện có, thì thiết bị sẽ duy trì bảng này cho lớp cơ sở dữ liệu mã nhận dạng nhà mạng.
Thông tin gần đây nhất trong cơ sở dữ liệu mã nhận dạng hãng vận chuyển được các phương thức công khai getSimCarrierId()
và getSimCarrierIdName()
thu thập.
Thêm thông tin mã nhận dạng hãng vận chuyển vào cơ sở dữ liệu
Để thêm hoặc cập nhật mã nhận dạng hãng vận chuyển vào cơ sở dữ liệu, hãy gửi yêu cầu bằng Biểu mẫu thông tin nhận dạng hãng vận chuyển.
Yêu cầu của bạn sẽ được xem xét và nếu được phê duyệt, thay đổi sẽ được chuyển đế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 danh sách đó vào bản dựng tuỳ chỉnh của mình.
Tích hợp mã nhận dạng nhà mạng với CarrierConfig
Kể từ Android 10, cấu hình nhà mạng hỗ trợ việc sử dụng mã nhận dạng nhà mạng làm khoá để tìm nạp các cấu hình dành riêng cho nhà mạng từ CarrierService
.
Việc tích hợp mã nhận dạng nhà mạng với CarrierConfig
mang lại những lợi ích sau:
- Hợp nhất tất cả các cặp MCC/MNC cho mỗi nhà mạng vào một vị trí duy nhất, xoá dữ liệu trùng lặp hoặc không nhất quán.
- Tạo giá trị nhận dạng chuẩn cho từng hãng vận chuyển và loại bỏ sự mơ hồ.
- Cho phép xác định nhà cung cấp dịch vụ mạng ảo di động (MVNO) bằng các mã nhận dạng riêng lẻ thay vì có cấu hình trong nhà mạng di động (MNO).
Di chuyển dữ liệu cấu hình sang mã nhận dạng hãng vận chuyển
Để di chuyển dữ liệu cấu hình từ các cặp MCC/MNC sang mã nhận dạng nhà mạng, hãy làm theo các bước sau:
Nhóm các tệp
carrier_config_mccmnc.xml
của một hãng vận chuyển lại với nhau. Sử dụngcarrier_list.textpb
làm thông tin tham khảo để liên kết thông tin MCC, MNC và MVNO với một nhà mạng cụ thể.Hợp nhất các cấu hình thành một tệp duy nhất.
(Không bắt buộc) 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ì mã nhận dạng nhà mạng cho phép tất cả nhà mạng (kể cả MVNO) có một tệp cấu hình riêng, nên bạn nên thêm dữ liệu MNO trong quá trình di chuyển.Nếu không có cấu hình cho mã nhận dạng nhà mạng MVNO, hãy tìm nạp cấu hình từ mã nhận dạng nhà mạng MNO của nhà mạng đó 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