gpt4 book ai didi

Android 4.0.3 创建wifi热点API

转载 作者:行者123 更新时间:2023-11-29 22:00:18 31 4
gpt4 key购买 nike

您好,我正在尝试从我的应用程序创建一个访问点。我可以支持 AP,但无法使用我设置的配置。我正在使用 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:nulln密码:空

最佳答案

我的 HTC Desire 和 Android 2.2.2 也有同样的问题。似乎许多(或所有)HTC 设备无法以这种方式配置。 HTC 可能重写了一些代码并限制了一些隐藏功能。您正在通过反射使用 API 中未正式提供的方法(例如 setWifiApEnabled)。在我的例子中,热点将被创建,但使用默认配置。可能你有同样的问题。它适用于一些其他设备认为

关于Android 4.0.3 创建wifi热点API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12093054/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com