一.获取移动网络的状态并通过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:无SM卡 ConnectivityManager 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()); } });