Android 如何通过编程方式从新SIM卡中获取电话号码?

Android 如何通过编程方式从新SIM卡中获取电话号码?,android,Android,我可以使用TelephonyManager.getLine1Number()从一些旧的SIM卡中获取电话号码,但对于一些新的SIM卡,它不起作用。 我试图使用这个代码段,但它也不起作用。它只返回空字符串 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { List<SubscriptionInfo> subscription = SubscriptionManager.from(getApplicationCont

我可以使用
TelephonyManager.getLine1Number()
从一些旧的SIM卡中获取电话号码,但对于一些新的SIM卡,它不起作用。 我试图使用这个代码段,但它也不起作用。它只返回空字符串

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    List<SubscriptionInfo> subscription = SubscriptionManager.from(getApplicationContext()).getActiveSubscriptionInfoList();
    for (int i = 0; i < subscription.size(); i++) {
        SubscriptionInfo info = subscription.get(i);
        Log.d(TAG, "number " + info.getNumber());
    }
}
if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M){
List subscription=SubscriptionManager.from(getApplicationContext()).getActiveSubscriptionInfoList();
对于(int i=0;i

有没有其他方法可以通过编程方式知道电话号码,我甚至认为可以向另一个设备发送真正的短信,这个设备可以接收和获取电话号码并发送到服务器后端。但这有点麻烦,有没有更简单的解决方案?

可能与此相关:ADB不是编程方式,我无法连接到ADB,因为我甚至可能没有与设备的联系。没有其他可靠的方法可以获得类似的号码。它甚至可能报告为零。我对在Android中获取电话号码没有具体的了解,但我想到了两个问题:(a)旧SIM卡(工作)和新SIM卡(不工作)是否都在同一部手机上测试过?如果是不同的手机,可能是硬件或安卓版本的问题。(b) 为了帮助可能和我一样不起眼的人,你能进一步说明“它也不起作用”吗?空字符串?错误消息/异常?我在同一台设备上测试过,只是SIM卡不同,android系统是8.1。从安卓系统设置->关于电话->电话号码,我可以看到旧的一个有电话号码,另一个没有。