如何在android中关闭数据连接?
我有一个可以关闭wifi的广播接收器。同样,我想关闭数据连接。我该怎么做?这是密码如何在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
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;我不明白你的第一个问题?对不起,好吧,现在没问题了..那么,现在电池电量不足时,数据连接会关闭,对吗?好吧,它是:)我试着从电池电量不足切换到开机状态,结果是:)谢谢!