我需要帮助以编程方式检查设备是否有 SIM 卡。请提供示例代码。
使用电话管理器。
http://developer.android.com/reference/android/telephony/TelephonyManager.html
正如法尔马里指出的那样,你will想要使用获取电话类型首先,看看您是否使用的是 GSM 手机。如果是,那么您还可以获得 SIM 状态。
TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int simState = telMgr.getSimState();
switch (simState) {
case TelephonyManager.SIM_STATE_ABSENT:
// do something
break;
case TelephonyManager.SIM_STATE_NETWORK_LOCKED:
// do something
break;
case TelephonyManager.SIM_STATE_PIN_REQUIRED:
// do something
break;
case TelephonyManager.SIM_STATE_PUK_REQUIRED:
// do something
break;
case TelephonyManager.SIM_STATE_READY:
// do something
break;
case TelephonyManager.SIM_STATE_UNKNOWN:
// do something
break;
}
EDIT:
从 API 26 开始(Android O 预览版)您可以使用以下命令查询 SimState 以获得各个 sim 插槽getSimState(int slotIndex)
ie:
int simStateMain = telMgr.getSimState(0);
int simStateSecond = telMgr.getSimState(1);
官方文档
如果您使用较旧的 api 进行开发,则可以使用TelephonyManager's
String getDeviceId (int slotIndex)
//returns null if device ID is not available. ie. query slotIndex 1 in a single sim device
int devIdSecond = telMgr.getDeviceId(1);
//if(devIdSecond == null)
// no second sim slot available
这是在 API 23 - 文档中添加的here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)