Nhận dạng nhà mạng

Các thiết bị chạy Android 9 có thể nhận dạng thông tin về nhà cung cấp dịch vụ thuê bao để cung cấp mã nhận dạng và tên nhà cung cấp. Android duy trì một cơ sở dữ liệu mã nhà mạng, với các quy tắc so khớp cho mỗi nhà mạng và mã nhà mạng duy nhất của họ. 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 nhận dạng nhà mạng.

Để cải thiện phạm vi và độ chính xác của thông tin nhận dạng nhà mạng, Android hỗ trợ cập nhật bảng mã nhận dạng nhà mạng và ngoài phạm vi. Mỗi bản cập nhật đều có số phiên bản và được phát hành cho AOSP.

Triển khai

Những người dùng muốn triển khai bản cập nhật ngoài phạm vi kênh 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à 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ẽ lưu trữ bảng đó vào lớp cơ sở dữ liệu mã nhận dạng nhà mạng. Thông tin mới nhất từ cơ sở dữ liệu mã nhận dạng của nhà mạng được các phương thức công khai getSimCarrierId()getSimCarrierIdName() thu thập.

Thêm thông tin mã nhận dạng nhà mạng vào cơ sở dữ liệu

Để thêm hoặc cập nhật mã nhận dạng của nhà mạng 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 của nhà mạng.

Yêu cầu của bạn sẽ được xem xét và nếu được phê duyệt, thay đổi này sẽ được đẩy lên cơ sở mã AOSP (Dự án nguồn mở Android) tại carrier_list.pb. Sau đó, bạn có thể sao chép danh sách đã cập nhật và đưa vào bản dựng tuỳ chỉ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à mạng làm khoá để tìm nạp 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 có những ưu điểm sau:

  • Hợp nhất tất cả cặp mã MCC/MNC cho mỗi nhà mạng 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 giá trị nhận dạng chuẩn cho từng nhà mạng 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 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à mạng

Để di chuyển dữ liệu cấu hình từ các cặp MCC/MNC sang mã mạng di động, hãy làm theo các bước sau:

  1. Nhóm các tệp carrier_config_mccmnc.xml của một nhà mạng lại với nhau. Sử dụng carrier_list.textpb làm tham chiếu để liên kết thông tin MCC, MNC và MVNO với một nhà mạng cụ thể.

  2. Hợp nhất các cấu hình thành một tệp.

  3. (Không bắt buộc) Kế thừa dữ liệu từ các nhà mạng di động. 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, bao gồm cả MVNO, có một tệp cấu hình chuyên dụng, nên bạn nên đưa dữ liệu MNO vào trong quá trình di chuyển.

  4. Nếu không có cấu hình cho mã nhà mạng MVNO, hãy tìm nạp cấu hình từ mã nhà mạng MNO bằng getCarrierIdFromSimMccMnc.

  5. Đổi tên tệp mới thành carrier_config_carrierid_carrierid_carriername.xml, trong đó carrierid phải tương ứng với canonical_idcarriername phải tương ứng với carrier_name trong carrier_list.textpb