android -wifi热点设置问题
2016-07-29 18:24
344 查看
package com.zyl.swsettingschild;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import com.zyl.Zylsettings.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class SetWifiHotActivity extends Activity{
WifiManager wifiManager;
RelativeLayout mHotSwitchLayout ;
RelativeLayout mHotSetLayout ;
CheckBox mHotSwitch ;
TextView mHotset_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wifihotsetting);
wifiManager=(WifiManager) getSystemService(WIFI_SERVICE);
initView();
initcontent();
initListener();
}
private void initView() {
// TODO Auto-generated method stub
mHotSwitchLayout = (RelativeLayout)findViewById(R.id.hotswitch);
mHotSetLayout = (RelativeLayout)findViewById(R.id.hotset);
mHotSwitch = (CheckBox)findViewById(R.id.mhotswitch);
mHotset_name = (TextView)findViewById(R.id.hotset_name);
}
private void initListener() {
// TODO Auto-generated method stub
OnCheckedChangeListener mSwitchListener = new OnCheckedChangeListener() {
@SuppressLint("ShowToast")
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
isStartWifiAp();
} else {
closeWifiAp();
}
}
};
mHotSwitch.setOnCheckedChangeListener(mSwitchListener);
}
private void initcontent() {
// TODO Auto-generated method stub
mHotSwitch.setChecked(isWifiApEnabled());
setWifiSSIDAndKey();
}
public void setWifiSSIDAndKey(){
String SSID = "\" T E S T \"";
String preSharedKey = "\"11111111\"";
mHotset_name.setText("设置wifi热点"+"(名称:"+SSID+";密码:"+preSharedKey+")");
}
public enum WIFI_AP_STATE {
WIFI_AP_STATE_DISABLING, WIFI_AP_STATE_DISABLED, WIFI_AP_STATE_ENABLING, WIFI_AP_STATE_ENABLED, WIFI_AP_STATE_FAILED
}
private WIFI_AP_STATE getWifiApState(){
int mtmpState;
try {
Method method = wifiManager.getClass().getMethod("getWifiApState");
mtmpState = ((Integer) method.invoke(wifiManager));
// Fix for Android 4
if (mtmpState > 10) {
mtmpState = mtmpState - 10;
}
return WIFI_AP_STATE.class.getEnumConstants()[mtmpState];
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return WIFI_AP_STATE.WIFI_AP_STATE_FAILED;
}
}
/**Analyzing turned hot*/
public boolean isWifiApEnabled() {
return getWifiApState() == WIFI_AP_STATE.WIFI_AP_STATE_ENABLED;
}
public void isStartWifiAp(){
wifiManager.setWifiEnabled(false);
stratWifiAp();
}
public void stratWifiAp() {
Method method1 = null;
try {
method1 = wifiManager.getClass().getMethod("setWifiApEnabled",
WifiConfiguration.class, boolean.class);
WifiConfiguration netConfig = new WifiConfiguration();
//wifi hot name
netConfig.SSID = "\" T E S T \"";
netConfig.allowedAuthAlgorithms
.set(WifiConfiguration.AuthAlgorithm.OPEN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
netConfig.allowedKeyManagement
.set(WifiConfiguration.KeyMgmt.WPA_PSK);
netConfig.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.CCMP);
netConfig.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.TKIP);
netConfig.allowedGroupCiphers
.set(WifiConfiguration.GroupCipher.CCMP);
netConfig.allowedGroupCiphers
.set(WifiConfiguration.GroupCipher.TKIP);
netConfig.preSharedKey = "\"11111111\"";
method1.invoke(wifiManager, netConfig, true);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void closeWifiAp() {
try {
Method method = wifiManager.getClass().getMethod("getWifiApConfiguration");
method.setAccessible(true);
WifiConfiguration config = (WifiConfiguration) method.invoke(wifiManager);
Method method2 = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method2.invoke(wifiManager, config, false);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import com.zyl.Zylsettings.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class SetWifiHotActivity extends Activity{
WifiManager wifiManager;
RelativeLayout mHotSwitchLayout ;
RelativeLayout mHotSetLayout ;
CheckBox mHotSwitch ;
TextView mHotset_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wifihotsetting);
wifiManager=(WifiManager) getSystemService(WIFI_SERVICE);
initView();
initcontent();
initListener();
}
private void initView() {
// TODO Auto-generated method stub
mHotSwitchLayout = (RelativeLayout)findViewById(R.id.hotswitch);
mHotSetLayout = (RelativeLayout)findViewById(R.id.hotset);
mHotSwitch = (CheckBox)findViewById(R.id.mhotswitch);
mHotset_name = (TextView)findViewById(R.id.hotset_name);
}
private void initListener() {
// TODO Auto-generated method stub
OnCheckedChangeListener mSwitchListener = new OnCheckedChangeListener() {
@SuppressLint("ShowToast")
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
isStartWifiAp();
} else {
closeWifiAp();
}
}
};
mHotSwitch.setOnCheckedChangeListener(mSwitchListener);
}
private void initcontent() {
// TODO Auto-generated method stub
mHotSwitch.setChecked(isWifiApEnabled());
setWifiSSIDAndKey();
}
public void setWifiSSIDAndKey(){
String SSID = "\" T E S T \"";
String preSharedKey = "\"11111111\"";
mHotset_name.setText("设置wifi热点"+"(名称:"+SSID+";密码:"+preSharedKey+")");
}
public enum WIFI_AP_STATE {
WIFI_AP_STATE_DISABLING, WIFI_AP_STATE_DISABLED, WIFI_AP_STATE_ENABLING, WIFI_AP_STATE_ENABLED, WIFI_AP_STATE_FAILED
}
private WIFI_AP_STATE getWifiApState(){
int mtmpState;
try {
Method method = wifiManager.getClass().getMethod("getWifiApState");
mtmpState = ((Integer) method.invoke(wifiManager));
// Fix for Android 4
if (mtmpState > 10) {
mtmpState = mtmpState - 10;
}
return WIFI_AP_STATE.class.getEnumConstants()[mtmpState];
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return WIFI_AP_STATE.WIFI_AP_STATE_FAILED;
}
}
/**Analyzing turned hot*/
public boolean isWifiApEnabled() {
return getWifiApState() == WIFI_AP_STATE.WIFI_AP_STATE_ENABLED;
}
public void isStartWifiAp(){
wifiManager.setWifiEnabled(false);
stratWifiAp();
}
public void stratWifiAp() {
Method method1 = null;
try {
method1 = wifiManager.getClass().getMethod("setWifiApEnabled",
WifiConfiguration.class, boolean.class);
WifiConfiguration netConfig = new WifiConfiguration();
//wifi hot name
netConfig.SSID = "\" T E S T \"";
netConfig.allowedAuthAlgorithms
.set(WifiConfiguration.AuthAlgorithm.OPEN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
netConfig.allowedKeyManagement
.set(WifiConfiguration.KeyMgmt.WPA_PSK);
netConfig.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.CCMP);
netConfig.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.TKIP);
netConfig.allowedGroupCiphers
.set(WifiConfiguration.GroupCipher.CCMP);
netConfig.allowedGroupCiphers
.set(WifiConfiguration.GroupCipher.TKIP);
netConfig.preSharedKey = "\"11111111\"";
method1.invoke(wifiManager, netConfig, true);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void closeWifiAp() {
try {
Method method = wifiManager.getClass().getMethod("getWifiApConfiguration");
method.setAccessible(true);
WifiConfiguration config = (WifiConfiguration) method.invoke(wifiManager);
Method method2 = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method2.invoke(wifiManager, config, false);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- android SDIO error导致wifi无法打开或者连接热点异常的问题
- Android教程:wifi热点问题
- ubuntu12.04设置wifi热点给Android设备
- android 7.0 有关wifi热点设置信息
- android 代码设置、打开wifi热点及热点的连接
- android 代码设置、打开wifi热点及热点的连接(转)
- android 代码设置、打开wifi热点及热点的连接
- Android应用程序创建热点以及自动链接Wifi,我遇到的问题以及我是怎么解决的
- Android 通过代码设置、打开wifi热点及热点连接的实现代码
- 笔记本wifi热点设置好后,手机连上但不能上网问题
- android 代码设置、打开wifi热点及热点的连接
- Android开发之WIFI编程:设置信息登录热点
- android 代码设置、打开wifi热点及热点的连接
- WIFI热点设置,包括HTC热点问题解决
- ubuntu12.04设置wifi热点给Android设备
- 笔记本wifi热点设置好后,手机连上但不能上网问题
- android 代码设置、打开wifi热点及热点的连接
- Android wifi通信 开发(wifi列表 +连接具体的wifi热点+socket的获取) 之 解决热点连成功的时延问题
- 高通Android wifi移植和wifi热点问题总结
- android 代码设置、打开wifi热点及热点的连接