如何从设备获取eSIM电话号码?



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

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

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

我还在清单文件中授予权限:

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

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

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

最新更新