【问题标题】:How to get eSIM phone number from the device?如何从设备中获取 eSIM 电话号码?
【发布时间】:2019-12-19 06:59:42
【问题描述】:

我想从设备上获取一个 eSIM 电话号码。

我正在使用 SubscriptionInfo 类来获取电话号码,但它总是返回 null。

SubscriptionManager subscriptionMgr = SubscriptionManager.from(context);
SubscriptionInfo subscriptionInfo = subscriptionMgr.getActiveSubscriptionInfoForSimSlotIndex(simIndex);

String phoneNumber = subscriptionInfo.getNumber()

我也在 Manifest 文件中授予权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

【问题讨论】:

    标签: android phone-number


    【解决方案1】:

    您必须检查是否已授予权限。

    public void getSIMNumber() {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
            SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext.getApplicationContext());
            //TODO check if permission is Granted
    
            List<SubscriptionInfo> subsInfoList = subscriptionManager.getActiveSubscriptionInfoList();
    
            Log.d("Test", "Current list = " + subsInfoList);
    
            for (SubscriptionInfo subscriptionInfo : subsInfoList) {
    
                String number = subscriptionInfo.getNumber();
    
                Log.d("Test", " Number is  " + number);
            }
        }
    
    }
    

    【讨论】:

    • 我已经获得了应用设置的权限。当我在设备中有物理 SIM 卡时,此 API 正在工作。但是当我使用 eSIM 切换运营商配置文件时,我无法从设备获取电话号码。
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多