如何在Android中通过编程方式从手机中获取sim卡号码?
我已经浏览了sto上的所有链接如何在Android中通过编程方式从手机中获取sim卡号码?,android,Android,我已经浏览了sto上的所有链接 private String getMyPhoneNumber(){ TelephonyManager mTelephonyMgr; mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); return mTelephonyMgr.getLine1Number(); } private String getMy
private String getMyPhoneNumber(){
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
return mTelephonyMgr.getLine1Number();
}
private String getMy10DigitPhoneNumber(){
String s = getMyPhoneNumber();
return s.substring(2);
}
但在大多数情况下,它返回null。
是否无法从Android中的telephony manager中追踪电话号码,或者是否有其他解决方法。以下是如何获取SimSerial和其他内容的示例
// Collecting device details
TelephonyManager tm = (TelephonyManager) c
.getSystemService(Context.TELEPHONY_SERVICE);
String model = android.os.Build.MODEL;
String brand = android.os.Build.BRAND;
String id = tm.getDeviceId();
String simSerial = tm.getSimSerialNumber();
String simCountry = tm.getSimCountryIso();
String simOperator = tm.getSimOperatorName();
String networkCountry = tm.getNetworkCountryIso();
但要得到电话号码是不可能的,但我找到了一个小办法
//返回用户电话号码
公共字符串getUserPhone(){
你必须把它设置好
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
玩弄帐目
如您所见,我正在从帐户收集电话号码,这仅在用户的手机上有WhatsApp、电报或类似内容时有效。因此,如果上述方法[getUserPhone()]返回null,我会手动询问电话号码。请在清单文件中添加以下行:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
没有安全的方法检索电话号码。有时有效,有些无效,取决于sim卡、网络等。最好的方法是简单地向用户索要电话号码。我已经发布了一个答案,请看。@ShifarShifz OP会自动通知他问题的新答案,无需额外评论。Telephony manger返回null,我已经给了权限。对于帐户解决方案,它返回“watsapp”。。只是,,,没有号码。你能在我用来获取电话号码的循环中放入一些日志,然后粘贴到这里吗。
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String getSimSerialNumber = telemamanger.getSimSerialNumber();
String getSimNumber = telemamanger.getLine1Number();