Android 4.2.2 Wifi-Direct adhoc网络 - 访问隐藏的android方法来设置SSID和密码?

时间:2014-01-19 16:36:36

标签: java android android-wifi wifi-direct wifip2p

我已使用WifiP2pManager“createGroup()”方法成功设置了Android点对点Wifi-Direct组。我的Android(4.2.2)设备被配置为组所有者。现在我需要为我想要连接的传统wifi对等设备设置adid通信的SSID和密码。

Android似乎设置了默认的SSID和密码,我可以使用WifiP2pGroup“getNetworkname()”和“getPassphrase()”方法读取这些值。我可以使用这些值,但我想在我的代码中动态设置值,以匹配我想连接的传统wifi设备的值。

如果您查看WifiP2pGroup的安卓代码,请列出:

http://android.googlesource.com/platform/frameworks/base/+/cd92588/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java

你可以看到公共方法“setNetworkName()”和“setPassphrase()”确实存在。但是,如果我尝试在我的Android设备上的java代码中引用这些方法,我会收到错误消息:

“方法setNetworkName(String)未定义类型WifiP2pGroup”和

“方法setPassphrase(String)未定义类型WifiP2pGroup”。

我的问题是:我如何访问Android 4.2.2操作系统中存在的这些隐藏方法作为WifiP2pGroup的公共方法?

除了使用这些方法之外,还有其他方法可以设置SSID和密码短语吗?

此外,他们为什么选择隐藏这些方法,您是否知道它们是否会在未来的Android版本中提供?如果是这样,哪个版本?

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用反射java。

让我们假设WifiP2pGroup将您当前的对象分组。

方法setPassPhraseMethod = group.getClass()。getMethod(" setPassphrase",new Class [{String.class}); 现在你调用方法:

setPassPhraseMethod.invoke(group," yourNewPassPrhase");

答案 1 :(得分:1)

您只能使用WifiP2pManager http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html

中公开的API

您所指的API是用于重新创建持久群组的内部API。