如何在android中关闭数据连接



我有一个可以关闭wifi的BroadcastReceiver。。同样,我也要关闭数据连接。。我该怎么做?这是代码

public static class LowBatteryReceiver extends BroadcastReceiver{
        public void onReceive(Context context, Intent intent){
            wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
            wifiManager.setWifiEnabled(false);
            wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
            Toast.makeText(context, "Turning off wifi..", Toast.LENGTH_LONG).show();
        }
    }

感谢

您必须使用此权限

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

在您的AndroidManifest.xml 中

<receiver android:name=".LowBatteryReceiver">
    <intent-filter>
         <action android:name="android.intent.action.BATTERY_LOW" />
    </intent-filter>
</receiver>

和你的LowBatteryReceiver

/** FOR CLOSE WIFI **/
public static class LowBatteryReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent){
        String intentAction = intent.getAction();
        if(intentAction.equals(Intent.ACTION_BATTERY_LOW))
            wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
            wifiManager.setWifiEnabled(false);
            Toast.makeText(context, "Turning off wifi..", Toast.LENGTH_LONG).show();
        }
    }
}
/** FOR CLOSE MOBILE DATA **/
public void onReceive(Context context, Intent intent){
        String intentAction = intent.getAction();
        if(intentAction.equals(Intent.ACTION_BATTERY_LOW))
            try {
            ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            Class<?> conmanClass = Class.forName(conman.getClass().getName());
            Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
            iConnectivityManagerField.setAccessible(true);
            Object iConnectivityManager = iConnectivityManagerField.get(conman);
            Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
            Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
            setMobileDataEnabledMethod.setAccessible(true);
            setMobileDataEnabledMethod.invoke(iConnectivityManager, false);
            } catch (Exception e) {
            e.printStackTrace();
            }
        }
    }

相关内容

  • 没有找到相关文章

最新更新