Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中通过编程方式从手机中获取sim卡号码?_Android - Fatal编程技术网

如何在Android中通过编程方式从手机中获取sim卡号码?

如何在Android中通过编程方式从手机中获取sim卡号码?,android,Android,我已经浏览了sto上的所有链接 private String getMyPhoneNumber(){ TelephonyManager mTelephonyMgr; mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); return mTelephonyMgr.getLine1Number(); } private String getMy

我已经浏览了sto上的所有链接

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();