使用 WiFi Direct 连接到对等点时,需要用户许可。我知道如果没有用户从未给予许可,就无法建立连接,并且对这种功能有功能请求: https ://code.google.com/p/android/issues/detail?id=30880
但是我不需要这个功能,在第一次连接时请求许可就可以了(也更安全)。是否有任何方法可以仅在第一次请求许可?并且稍后尝试连接到同一个对等方时,不需要权限。
使用 WiFi Direct 连接到对等点时,需要用户许可。我知道如果没有用户从未给予许可,就无法建立连接,并且对这种功能有功能请求: https ://code.google.com/p/android/issues/detail?id=30880
但是我不需要这个功能,在第一次连接时请求许可就可以了(也更安全)。是否有任何方法可以仅在第一次请求许可?并且稍后尝试连接到同一个对等方时,不需要权限。
从 P2P 规范中,我们可以找到一种叫做“持久 P2P 组”的东西,它旨在在没有用户干预的情况下重新建立一个组。
在持久 P2P 组中,组所有者存储组的凭据,以便将来可以根据任何组成员的请求重新建立组,而无需用户干预。
可以通过在使用命令行连接时指定持久性来形成这样的组(请参阅 P2Pwpa_supplicant
并搜索p2p_connect
命令https://android.googlesource.com/platform/external/wpa_supplicant_8/+/ics-plus-aosp/wpa_supplicant/README -P2P)。但我不知道该选项是否适用于当前设备。
编辑:查看问题的答案我可以在 Wi-Fi Direct 中更改永久组中的组所有者吗?
由于我在 Ubuntu 上使用 Wi-Fi Direct,因此我使用wpa_cli
(随 一起提供wpa_supplicant
)来创建文件中指定的持久组p2p_readme
。
我管理的最接近没有提示的 Wi-Fi Direct 功能是使用服务发现与旧模式相结合,即当连接应该发生时,您不使用 WifiP2pManager.connect() 但 WifiManager.enableNetwork( ) 反而。
我是一个非常简单的 P2P 堆栈的作者,它自动化了所有的魔法,你可以在https://github.com/croconaut/wifon-mini上查看一个例子,看看它的工作好坏(加上一些文档) .
我正在使用两个 HTC One V 和一个 HTC One X+。我一直在运行Android给出的WifiDirectDemo。除了打开 Wifi Direct 之外,不需要其他设置。我只需在应用程序中按下一个搜索按钮,就会列出同行。
起初我确实认为我需要另一个设备权限,正如你所描述的,每次我在我的设备上安装应用程序时都需要重新启用它。但这是在我注意到应用程序中的搜索按钮之前,并意识到这不是必需的。
你会不会犯和我一样的错误?
不幸的是,不是在这个时候。也许在将来,或者如果您编写自己的 ROM。
它可以通过反射方法。