Android打开、关闭网络

本文介绍了在Android应用中如何静态申请网络权限,包括使用WiFiManager获取和设置WiFi状态,以及通过反射调用ConnectivityManager获取和设置移动数据连接状态。
摘要由CSDN通过智能技术生成

Android手机的网络一般有两种,WiFi网络移动数据网络

对网络进行操作前需要静态申请权限,因为并不会对隐私产生危害,所以只需要静态申请。

<!--查看数据网络状态,无需动态申请-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--查看WiFi网络状态,无需动态申请-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

1.WiFi网络

使用WiFiManager(WiFi管理器)获取WiFi状态及设置WiFi状态。

//获取WiFi状态
public static boolean getWiFiState(Context context){
    WifiManager wifiManager= (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    return wifiManager.isWifiEnabled();
}
    
//设置WiFi状态
public static void setWiFiState(Context context,boolean state){
    WifiManager wifiManager= (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    wifiManager.setWifiEnabled(state);
}

2.移动数据网络

使用ConnectivityManager(连接管理器)获取移动数据连接状态及设置连接状态;请注意因为是隐藏方法,需要通过反射调用。

//获取移动数据连接开关的状态
public static boolean getMobileDataState(Context context){
    //获取连接管理器
    ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    boolean isOpen=false;
    try {
        //该方法为隐藏方法,需要通过反射调用
        String methodName="getMobileDataEnable";
        Method method=connectivityManager.getClass().getMethod(methodName);
        isOpen= (boolean) method.invoke(connectivityManager);
    }catch (Exception e){
        e.printStackTrace();
    }
    return isOpen;
}

//设置移动数据连接开关的状态
public static void setMobileDataState(Context context,boolean state){
    //获取连接管理器
    ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    try{
        //该方法为隐藏方法,需要通过反射调用
        String methodName="setMobileDataEnable";
        Method method=connectivityManager.getClass().getMethod(methodName);
        method.invoke(connectivityManager,state);
    }catch (Exception e){
        e.printStackTrace();
    }
}

tag:移动数据、移动网络、网络、Internet、互联网、WiFi、基站

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值