簡體   English   中英

使用Android應用程序訪問SIM卡?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM