如何在android中捕获移动数据启用/禁用事件

时间:2016-09-09 04:39:34

标签: android android-broadcast android-gps

我正在开发一个跟踪应用程序,我需要捕获移动数据启用/禁用事件。我已成功通过以下代码获得互联网启用/禁用广播:

flush()

但是通过使用此代码段,我只获得了互联网状态。无论数据禁用还是没有网络区域,它都将在两种情况下都会触发。但是我需要一个只有在手动禁用移动数据时才会触发的广播。

1 个答案:

答案 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
        }