首页 > 解决方案 > 获取运营商姓名sim卡

问题描述

我写简单的小部件。我想在尝试使用SubscriptionManager类的双卡手机上获取运营商的姓名。我的行动:

设置权限:

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

尝试使用getActiveSubscriptionInfoList方法获取所有模拟人生:

@Override
public void onEnabled(Context context) {
    super.onEnabled(context);
    if (ActivityCompat.checkSelfPermission (context, Manifest.permission.READ_PHONE_STATE)! = 
PackageManager.PERMISSION_GRANTED) {
       if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.P) {
           SubscriptionManager subscriptionManager = SubscriptionManager.from (context.getApplicationContext ());
           List <SubscriptionInfo> subsInfoList = subscriptionManager.getActiveSubscriptionInfoList ();

           Toast.makeText (context, subsInfoList.size (), Toast.LENGTH_SHORT) .show ();
           // ... etc
        }
    }
}

getActiveSubscriptionInfoList方法总是返回一个空集合。为什么会这样?我的配置:华为设备P30,Android 10.0,Android Studio 4.0.1。

标签: javaandroidandroid-studio

解决方案


推荐阅读