13

我想知道是否可以使用 Android 应用程序访问 SIM 卡

4

6 回答 6

9

你可以像这样得到 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

于 2010-03-03T18:16:09.167 回答
5

如果没有来自 SEEK(安全元件评估套件)的 SmartCardAPI,它永远不可能。在市场上可用的大多数 Android 手机中,SmartCardAPI 未实现。因此,您要么在集成 SmartCardAPI 代码后构建自己的 Android,要么等待一些具有此功能的体面手机问世。您可以在此处找到用于实施的补丁文件。

于 2012-02-03T03:16:44.593 回答
4

您可能对 Android 的 SmartCard API 感兴趣: http ://code.google.com/p/seek-for-android/

于 2010-12-29T15:48:37.983 回答
2

SIM 卡访问仅适用于系统应用程序:

第三方应用程序无法访问 SIM 卡的低级别访问权限。操作系统处理与 SIM 卡的所有通信,包括访问 SIM 卡内存上的个人信息(联系人)。应用程序也无法访问 AT 命令,因为这些命令由无线电接口层 (RIL) 专门管理。RIL 没有为这些命令提供高级 API。

来源:https ://source.android.com/security/overview/app-security.html#sim-card-access

于 2012-07-18T11:52:46.180 回答
0

SEEK 是最有用的,但大多数安卓手机不支持。所以,也许我们可以通过其他方法来评估 SIM 卡,比如读取 SMS(在 SIM 卡中)。

于 2014-02-28T03:14:16.913 回答
0

您应该使用 java 反射在 android 的内部 api 中使用 IccFileHandler 。它位于框架/基地/电话

于 2017-07-17T04:14:37.040 回答