您的位置:首页 > 理论基础 > 计算机网络

Android打开WIFI或者移动网络

2014-09-20 16:14 639 查看
package com.example.openwifi_mobiledata;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;

/**
* 利用反射机制 打开移动网络
* 学习;
* http://blog.csdn.net/lfdfhl/article/details/13509729 *
* @author andy
*
*/

public class MainActivity extends ActionBarActivity {

ConnectivityManager s;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
toggleWiFi(MainActivity.this, true);

}
});

findViewById(R.id.button2).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
toggleMobileData(MainActivity.this, true);

}
});
}

// 设置是否打开wifi
private void toggleWiFi(Context context, boolean enable) {
WifiManager wifimanager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
wifimanager.setWifiEnabled(enable);
}

private void toggleMobileData(Context context, boolean enable) {

ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(CONNECTIVITY_SERVICE);
Class<?> connectivitymanagerclass = null;
Field connectivitymanagerfield = null;
Class<?> iconnectivitymanagerclass = null;
Object iconnectivitymanagerobject = null;
Method setMobileDataEnabledMethod = null;

try {
connectivitymanagerclass = Class.forName(connManager.getClass()
.getName());
connectivitymanagerfield = connectivitymanagerclass
.getDeclaredField("mService");
connectivitymanagerfield.setAccessible(true);

iconnectivitymanagerobject = connectivitymanagerfield
.get(connManager);
iconnectivitymanagerclass = Class
.forName(iconnectivitymanagerobject.getClass().getName());

setMobileDataEnabledMethod = iconnectivitymanagerclass
.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);

setMobileDataEnabledMethod.invoke(iconnectivitymanagerobject, enable);

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: