我需要确保无需在指定设备中输入PIN即可使用SIM卡,但必须在其他设备中使用。 (正在使用的设备已植根,应用程序已安装为系统应用程序)
我想要的是识别SIM卡,并以编程方式输入引脚(如果已知/已保存)。
我可以在需要时输入已知的密码,但我的SIM识别有问题。
我发现在输入正确的PIN码之前,我无法获得SIM序列号或用户ID。
我正在使用的方法(具有权限等):
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getSimSerialNumber();
问题是,如果引脚是必需的并且尚未输入,则此方法返回null。
我的问题是,是否有某种解决方法。 有可能吗? 还有另一种方法吗?
赞赏的想法和方法。 提前致谢。
答案 0 :(得分:0)
TelephonyManager tm = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
}
String simID = tm.getSimSerialNumber();
String telNumber = tm.getLine1Number();
String IMEI = tm.getDeviceId();
许可:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
您的问题:
返回的电话号码是存储在SIM卡MSISDN上的电话号码,某些运营商没有填写。如果在印度,请尝试使用Virtafone的Airtel。
答案 1 :(得分:0)
可以使用SubscriptionManager,但 Android 10和在API级别22中添加的SubscriptionManager不能将其用于第三方应用
// Requires, android.permission.READ_PHONE_STATE
SubscriptionManager sm = SubscriptionManager.from(mContext);
// it returns a list with a SubscriptionInfo instance for each simcard
// there is other methods to retrieve SubscriptionInfos List<SubscriptionInfo>
sis = sm.getActiveSubscriptionInfoList();
// getting first SubscriptionInfo
SubscriptionInfo si = sis.get(0);