WIFI和移动数据(2G/3G)的打开和关闭的代码实现

MainActivity如下:package cc.vv;import java.lang.reflect.Method;import android.net.ConnectivityManager;import android.net.wifi.WifiManager;import android.os.Bundle;import android.telephony.TelephonyManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.app.Activity;import android.content.Context;/** * Demo描述: * 1 打开和关闭Wifi * 2 打开和关闭设备的移动数据(2G/3G) * * * 注意权限: * <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> * <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> * <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> * <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> * <uses-permission android:name="android.permission.WRITE_SETTINGS" /> * * 参考资料: * 1 * 2 * Thank you very much */public class MainActivity extends Activity {private Button mOpenWifiButton;private Button mCloseWifiButton;private Button mOpenMobileDataButton;private Button mCloseMobileDataButton;private Context mContext;private ClickListenerImpl mClickListenerImpl;private WifiManager mWifiManager;private TelephonyManager mTelephonyManager;private ConnectivityManager mConnectivityManager;private boolean isMobileDataEnabled=false;private Method mMethod;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}private void init(){mContext=this;mClickListenerImpl=new ClickListenerImpl();mWifiManager=(WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);mConnectivityManager=(ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);mTelephonyManager=(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);//判断当前手机是否在使用MobileData(移动数据)if (mTelephonyManager.getDataState()==TelephonyManager.DATA_CONNECTED) {isMobileDataEnabled=true;}mOpenWifiButton=(Button) findViewById(R.id.openWifiButton);mOpenWifiButton.setOnClickListener(mClickListenerImpl);mCloseWifiButton=(Button) findViewById(R.id.closeWifiButton);mCloseWifiButton.setOnClickListener(mClickListenerImpl);mOpenMobileDataButton=(Button) findViewById(R.id.openMobileDataButton);mOpenMobileDataButton.setOnClickListener(mClickListenerImpl);mCloseMobileDataButton=(Button) findViewById(R.id.closeMobileDataButton);mCloseMobileDataButton.setOnClickListener(mClickListenerImpl);}private class ClickListenerImpl implements OnClickListener {@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.openWifiButton:openWifi();break;case R.id.closeWifiButton:closeWifi();break;case R.id.openMobileDataButton:openMobileData();break;case R.id.closeMobileDataButton:closeMobileData();break;default:break;}}}//打开Wifiprivate void openWifi(){if (!mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(true);}}//关闭Wifiprivate void closeWifi(){if (mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(false);}}//打开移动数据private void openMobileData(){if (!isMobileDataEnabled) {try {mMethod=ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);mMethod.invoke(mConnectivityManager, true);isMobileDataEnabled=true;} catch (Exception e) {}}}//关闭移动数据private void closeMobileData(){if (isMobileDataEnabled) {try {mMethod=ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);mMethod.invoke(mConnectivityManager, false);isMobileDataEnabled=false;} catch (Exception e) {}}}}main.xml如下:<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/openWifiButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_marginTop="30dip"android:text="打开wifi" /><Buttonandroid:id="@+id/closeWifiButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_below="@id/openWifiButton"android:layout_marginTop="30dip"android:text="关闭wifi" /><Buttonandroid:id="@+id/openMobileDataButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_below="@id/closeWifiButton"android:layout_marginTop="30dip"android:text="打开移动数据" /><Buttonandroid:id="@+id/closeMobileDataButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_below="@id/openMobileDataButton"android:layout_marginTop="30dip"android:text="关闭移动数据" /></RelativeLayout>

,要克服生活的焦虑和沮丧,得先学会做自己的主人

WIFI和移动数据(2G/3G)的打开和关闭的代码实现

相关文章:

你感兴趣的文章:

标签云: