[英]Access the SIM Card with an Android Application?
我想知道是否可以使用Android應用程序訪問SIM卡
您可以這樣獲得IMEI(但這是您想要的嗎?),例如:
mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei = mTelephonyMgr.getDeviceId();
同樣,你有
String getSimCountryIso():
返回與SIM卡提供商的國家/地區代碼等效的ISO國家/地區代碼。
String getSimOperator():
返回SIM卡提供商的MCC + MNC(移動國家代碼+移動網絡代碼)。
String getSimOperatorName():
返回服務提供者名稱(SPN)。
String getSimSerialNumber():
返回SIM卡的序列號(如果適用)。
int getSimState():
返回一個常量,指示設備SIM卡的狀態。
String getSubscriberId():
返回唯一的用戶ID,例如GSM電話的IMSI。
有關更多信息,請看此頁面
並且不要忘記在清單中添加正確的權限( getDeviceId() => Requires Permission: READ_PHONE_STATE
)
沒有SEEK(安全元素評估套件)的SmartCardAPI,就不可能實現。 在市場上大多數的Android手機中,沒有實現SmartCardAPI。 因此,您可以在集成SmartCardAPI代碼后構建自己的Android,或者等待具有該功能的智能手機問世。 您可以在此處找到實施補丁文件。
適用於Android的SmartCard API可能會讓您感興趣: http : //code.google.com/p/seek-for-android/
SIM卡訪問僅適用於系統應用程序:
第三方應用程序不具備對SIM卡的低級別訪問權限。 操作系統處理與SIM卡的所有通信,包括訪問SIM卡內存中的個人信息(聯系人)。 應用程序也無法訪問AT命令,因為它們僅由無線電接口層(RIL)管理。 RIL不為這些命令提供高級API。
來源: https : //source.android.com/security/overview/app-security.html#sim-card-access
SEEK是最有用的一種,但大多數Android手機都不支持。因此,也許我們可以通過其他方法(如讀取SMS(在SIM卡中)來評估SIM卡)。
您應該在Java的內部api中使用java Reflection使用IccFileHandler。 它位於framework / base / telephony
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.