我正在开发一个跟踪应用程序,我需要捕获移动数据启用/禁用事件。我已成功通过以下代码获得互联网启用/禁用广播:
flush()
但是通过使用此代码段,我只获得了互联网状态。无论数据禁用还是没有网络区域,它都将在两种情况下都会触发。但是我需要一个只有在手动禁用移动数据时才会触发的广播。
答案 0 :(得分:0)
尝试以下代码:
boolean mobileDataEnabled = false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
Class cmClass = Class.forName(cm.getClass().getName());
Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
method.setAccessible(true);
mobileDataEnabled = (Boolean)method.invoke(cm);
}
catch (Exception e) {
// TODO do whatever error handling you want here
}