Android Wifi Direct: 连接已知对等体时避免用户接受

22

在使用WiFi Direct连接对等方时,需要用户的许可。我知道如果用户没有给予权限,就无法建立连接,而且有一个功能请求: https://code.google.com/p/android/issues/detail?id=30880

但我不需要这个功能,在第一次连接时请求权限是可以的(而且更安全)。是否有任何方法可以只在第一次连接时请求权限?当尝试再次连接同一对等方时,不需要再次请求权限。


能否在未经用户批准的情况下连接WiFi Direct?是否有相应的清单权限可用? - user1850484
是的,有一种绕过方法,它有效!https://stackoverflow.com/a/45673308/6681300 可能是重复。 - SaadurRehman
5个回答

5
从P2P规范中,我们可以找到一个叫做“持久P2P组”的东西,旨在重新建立一个组而无需用户干预。
在持久P2P组中,组所有者存储了组的凭证,以便在未来任何组成员的请求下,无需用户干预即可重新建立该组。
通过使用命令行连接时指定 persistent,可以形成这样的组(请参见wpa_supplicant的 P2P,并搜索 p2p_connect 命令https://android.googlesource.com/platform/external/wpa_supplicant_8/+/ics-plus-aosp/wpa_supplicant/README-P2P)。但我不知道当前设备是否有此选项。
编辑: 请参见问题的答案Can I change the group owner in a persistent group in Wi-Fi Direct? 自从我在Ubuntu上使用Wi-Fi Direct,我使用了wpa_cli(随wpa_supplicant一起提供)来创建一个持久组,如p2p_readme文件中所指定的那样。

1
我最接近实现Wi-Fi Direct功能而无需提示的方法是使用服务发现和传统模式结合,即在连接应该发生时,您不使用WifiP2pManager.connect(),而是使用WifiManager.enableNetwork()。
我是一个非常简单的P2P堆栈的作者,它自动化了所有的魔法。您可以查看https://github.com/croconaut/wifon-mini上的示例,以查看它的表现如何(以及一些文档)。

0

很遗憾,现在还不行。也许将来可以,或者如果你编写自己的ROM。


0

我正在使用两个HTC One V和一个HTC One X+。我一直在运行Android提供的WifiDirectDemo。除了打开Wifi Direct之外,不需要进行任何其他设置。我只需在应用程序中按下搜索按钮,对等设备就会列出。

起初,我认为我需要另一个设备的权限,就像你所描述的那样,每次在我的设备上安装应用程序时都需要重新启用它。但是,在注意到应用程序中的搜索按钮之前,我就已经这样想了,并意识到这是不必要的。

你可能犯了和我一样的错误吗?


-1
可以通过反射方法实现。

你能再解释一下吗? - gregm
有趣,没有解释但是得到了50点赏金?怎么回事? - Amos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接