我需要检查移动数据是否已开启。这里有一些重要的问题告诉我们如何做到这一点,但没有一个问题涉及Dual sim设备的问题。
public Boolean isMobileDataEnabled(){
Object connectivityService = getSystemService(CONNECTIVITY_SERVICE);
ConnectivityManager cm = (ConnectivityManager) connectivityService;
try {
Class<?> c = Class.forName(cm.getClass().getName());
Method m = c.getDeclaredMethod("getMobileDataEnabled");
m.setAccessible(true);
return (Boolean)m.invoke(cm);
} catch (Exception e) {
if(e instanceof NoSuchMethodException){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
boolean isDataEnabled = Settings.Global.getInt(this.getContentResolver(), "mobile_data", 0) == 1;
return isDataEnabled;
}
}
e.printStackTrace();
return false;
}
}
问题是,是否有任何方法可以发现移动数据处于活动状态的SIM卡?
我尝试使用电话管理器进行检查,但它并没有解决任何问题。
编辑:我发现了订阅管理员,但这只是来自api 22。低版本怎么样?