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

标签 java android android-wifi wifi-direct wifip2p

我已经使用 WifiP2pManager 的“createGroup()”方法成功设置了一个 Android 点对点 Wifi-Direct 组。我的 Android (4.2.2) 设备被配置为组所有者。现在我需要设置 SSID 和密码,以便与我想要连接的旧版 wifi 对等设备进行临时通信。

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

如果您查看 WifiP2pGroup 的 android 代码,列在:

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

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

“方法 setNetworkName(String) 未为 WifiP2pGroup 类型定义”,并且

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

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

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

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

感谢您提供的任何帮助。

最佳答案

你可以使用反射java。

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

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

setPassPhraseMethod.invoke(group, "yourNewPassPrhase");

关于java - Android 4.2.2 Wifi-Direct adhoc 网络——访问隐藏的 android 方法来设置 SSID 和密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219474/

相关文章:

java - 如何去除gradle中的重复依赖?

java - System.out.println 到文本文件

Java unix 过滤器

java - 从 commons.lang 迁移 StringEscapeUtils.escapeSql

java - 我怎样才能在 NestedScrollView 中有一个 ListView

java - Android Wifi getScanResult() 返回空列表

android - 导入 Android NDK 项目(解码 OGG)

java - Android中checkbox和checkedtextview的区别? RecyclerView 使用哪个?

android - ADB over Wi-Fi 在一台 PC 上速度极慢,但在另一台 PC 上非常好

java - 如何使用 Android 2.36 (Gingerbread) 开发/编码 WIFI Direct?