获取移动网络的状态及移动网络的开启与关闭

一.获取移动网络的状态并通过checkbox控件显示出来
新建一个selector布局文件
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/ic_button_activited" android:state_checked="true"/>
    <item android:drawable="@drawable/ic_button_normal" android:state_checked="false"/>
</selector>

新建一个布局文件
<CheckBox
    android:id="@+id/ck_picture"
    android:button="@drawable/changepicture_selector"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="15dp"/>

//判断当前网络是否可用
//networkInfo!=null:无SMConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);//获取系统服务
NetworkInfo networkInfo=mConnectivityManager.getActiveNetworkInfo();//获取移动网络的状态
if(networkInfo!=null&&networkInfo.isConnected()){//判断:移动网络可用
    ck_picture.setChecked(true);//可用:控件ck_picture设置为选中状态
}else{
    ck_picture.setChecked(false);

}

二.移动网络的开启与关闭

这段代码可以直接用,开启移动网络setMobileData(context,true);关闭移动网络setMobileData(context,false);

/**
  * 设置手机的移动数据
  */
 public static void setMobileData(Context pContext, boolean pBoolean) {

     try {

         ConnectivityManager mConnectivityManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);

         Class ownerClass = mConnectivityManager.getClass();

         Class[] argsClass = new Class[1];
         argsClass[0] = boolean.class;

         Method method = ownerClass.getMethod("setMobileDataEnabled", argsClass);

         method.invoke(mConnectivityManager, pBoolean);

     } catch (Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
         System.out.println("移动数据设置错误: " + e.toString());
     }
 }

例如:

//设置移动网络状态
        ck_picture.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Toast.makeText(SetPictureActivity.this,ck_picture.isChecked()+"",Toast.LENGTH_SHORT).show();
                setMobileData(context, ck_picture.isChecked());

            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值