Android设备获取默认的启用数据卡的SubId

来源:互联网 发布:单片机如何烧程序 编辑:程序博客网 时间:2024/06/01 18:42

Android设备获取默认的数据卡SubId

public void getDefaultDataSubId(){    SubscriptionManager sm = SubscriptionManager.from(getApplicationContext());    try {        Method getSubId = sm.getClass().getDeclaredMethod("getDefaultDataSubscriptionId");        if(getSubId != null)        {            int id = (int) getSubId.invoke(sm);        }    } catch (NoSuchMethodException e) {        e.printStackTrace();    } catch (InvocationTargetException e) {        e.printStackTrace();    } catch (IllegalAccessException e) {        e.printStackTrace();    }}
经过本人测试,在三种机型上试过,上面方法都能得到默认数据卡的SubId,但是在一款联想pad上会报NoSuchMethodException,最后把反射的方法getDefaultDataSubscrptionId改为getDefaultDataSubId,就OK了,仅为本人的一点经验,仅供参考,遇到该问题的同学可以参考一下。

Method getSubId = sm.getClass().getDeclaredMethod("getDefaultDataSubId");