2011-12-20 79 views
11

Tôi đang cố gắng truy xuất MSISDN từ SIM bằng Android, tôi đã thử getLine1Number() nhưng điều này chỉ trả về MSISDN được lưu trữ trong Thông tin về điện thoại hoặc Thông tin chủ sở hữu, nếu thông tin không được lưu trữ, Android sẽ trả lại giá trị null.Nhận MSISDN từ SIM sử dụng Android

Bạn có biết công việc nào không? hoặc có cách nào lấy được MSISDN từ số SIM (getSimSerialNumber()) không?

Đang chờ chất rắn Trả lời như mọi khi !!! :)

Trả lời

20

MSISDN (còn gọi là số điện thoại di động) không phải là dữ liệu SIM, do đó bạn không thể truy xuất dữ liệu đó. Thẻ SIM có IMSI (Nhận dạng thuê bao di động quốc tế) được gửi tới HLR (Đăng ký vị trí nhà) phụ trách việc lập bản đồ MSISDN/IMSI. Nhà điều hành điện thoại di động có thể lưu trữ MSISDN trên thẻ SIM nếu họ muốn, nhưng vì nó không được yêu cầu trong giao thức GSM nó không phải là.

Xin lỗi!

Để biết thêm thông nhìn vào cuộc thảo luận này Getting phone number cũng How android get MSISDN

EDIT:

Để có được số IMSI,

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String imsi = mTelephonyMgr.getSubscriberId(); 

nhưng một vài điện thoại di động chỉ trả lại 6 chữ số thay vì 15. Vì vậy, bạn có thể sử dụng,

Theo bài đăng này: http://www.anddev.org/tinytut_-_getting_the_imsi_-_imei_sim-device_unique_ids-t446.html

String imei = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI); 

Để biết thêm thông nhìn vào This Questionclass SystemProperties

+0

Vâng, tôi nhận ra điều đó quá ... nhưng làm thế nào để tôi lấy lại IMSI từ SIM sử dụng Andoid? bất kỳ ý tưởng? – megazoid