Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中关闭数据连接?_Android_Connection_Broadcastreceiver_3g_3g Network - Fatal编程技术网

如何在android中关闭数据连接?

如何在android中关闭数据连接?,android,connection,broadcastreceiver,3g,3g-network,Android,Connection,Broadcastreceiver,3g,3g Network,我有一个可以关闭wifi的广播接收器。同样,我想关闭数据连接。我该怎么做?这是密码 public static class LowBatteryReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent){ wifiManager = (WifiManager) context.getSystemService(Context.WIFI_S

我有一个可以关闭wifi的广播接收器。同样,我想关闭数据连接。我该怎么做?这是密码

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>

还有你的低电池接收器

/** 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();
            }
        }
    }
/**用于近距离无线网络**/
公共静态类LowBatteryReceiver扩展广播接收器{
@凌驾
公共void onReceive(上下文、意图){
字符串intentAction=intent.getAction();
if(意图动作等于(意图动作电池电量低))
wifiManager=(wifiManager)context.getSystemService(context.WIFI_服务);
wifiManager.setWifiEnabled(false);
Toast.makeText(上下文,“关闭wifi…”,Toast.LENGTH_LONG.show();
}
}
}
/**用于近距离移动数据**/
公共void onReceive(上下文、意图){
字符串intentAction=intent.getAction();
if(意图动作等于(意图动作电池电量低))
试一试{
ConnectivityManager conman=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务);
类conmanClass=Class.forName(conman.getClass().getName());
字段iConnectivityManagerField=conmanClass.getDeclaredField(“MSService”);
iConnectivityManagerField.setAccessible(true);
对象iConnectivityManager=iConnectivityManagerField.get(conman);
类iConnectivityManager类=Class.forName(iConnectivityManager.getClass().getName());
方法setMobileDataEnabledMethod=iConnectivityManagerClass.getDeclaredMethod(“setMobileDataEnabled”,Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
调用(iConnectivityManager,false);
}捕获(例外e){
e、 printStackTrace();
}
}
}

好吧,我想要的是关闭3g数据连接。不仅是Wi-Fi…我怎么做?谢谢!!只有两个问题..是否可以在wifi连接的
onReceive
中插入移动数据代码?它要求我导入
字段,但我不知道是哪一个..对于导入字段:import java.lang.reflect.Field;我不明白你的第一个问题?对不起,好吧,现在没问题了..那么,现在电池电量不足时,数据连接会关闭,对吗?好吧,它是:)我试着从电池电量不足切换到开机状态,结果是:)谢谢!