您好我正在尝试从我的应用创建一个接入点。我可以站起来,但不能使用我设置的配置。我正在使用htc Sensation XE
WifiManager wifiManager = (WifiManager) rc.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled())
{
wifiManager.setWifiEnabled(false);
}
Method[] wmMethods = wifiManager.getClass().getDeclaredMethods();
boolean methodFound=false;
WifiConfiguration netConfig = new WifiConfiguration();
netConfig.SSID = "MyWifiAP";
netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
for(Method method: wmMethods){
if(method.getName().equals("setWifiApEnabled")){
methodFound=true;
try {
boolean apstatus=(Boolean) method.invoke(wifiManager, netConfig,true);
for (Method isWifiApEnabledmethod: wmMethods){
if(isWifiApEnabledmethod.getName().equals("isWifiApEnabled")){
while(!(Boolean)isWifiApEnabledmethod.invoke(wifiManager)){
};
for(Method method1: wmMethods){
if(method1.getName().equals("getWifiApState")){
int apstate;
apstate=(Integer)method1.invoke(wifiManager);
for(Method method2: wmMethods){
if(method2.getName().equals("getWifiApConfiguration")){
try {
netConfig=(WifiConfiguration)method2.invoke(wifiManager);
} 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();
}
Log.e("CLIENT", "\nSSID:"+netConfig.SSID+"\nPassword:"+netConfig.preSharedKey+"\n");
if (apstate==0) {
Log.d("basura", "apstate es: "+apstate);
}
}
}
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
我打印时:
Log.e(“CLIENT”,“\ nSSID:”+ netConfig.SSID +“\ n密码:”+ netConfig.preSharedKey +“\ n”);
我明白了:
nSSID:空 n密码:空
答案 0 :(得分:2)
我的HTC Desire和Android 2.2.2也有同样的问题。似乎许多(或所有)HTC设备无法以这种方式配置。 HTC可能已经重写了一些代码并限制了一些隐藏的功能。您正在使用通过反射在API中没有正式的方法(例如setWifiApEnabled)。在我的情况下,将创建热点,但使用默认配置。可能你有同样的问题。它适用于其他一些设备