gpt4 book ai didi

android - 如何以编程方式启用 Android O WiFi 热点

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:13 25 4
gpt4 key购买 nike

我们一直在使用 WifiManager 隐藏 API 来启用 Wifi 网络共享并创建接入点。 Android 上 API 26 现在的问题是标记 @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) 被添加到 setWifiApEnabled 函数,现在调用返回 false 和打印以下日志:

W/WifiManager: PACKAGE_NAME attempted call to setWifiApEnabled enabled = true

阅读新文档,它说该函数已被弃用,将在即将发布的版本中删除,如果调用者具有适当的权限,则改为使用 ConnectivityManager#startTethering 但这种方法有同样的问题没有 TETHER_PRIVILEGED 权限。文档中提供的另一个选项是使用 LocalOnlyHotspot 但这对项目没有用,因为创建的热点没有 Internet 连接。

我还使用隐藏 API 中的 startSoftAp 函数进行了测试,但没有成功的结果,因为抛出了以下异常:

WifiService: Neither user 10164 nor current process has android.permission.NETWORK_STACK

是否有任何解决方法可以在较新的 API 上激活 Wifi 热点?我还搜索了 Wifi 网络共享的替代方案,但唯一可行的替代方案似乎是蓝牙网络共享,缺点是只能获得 3G 速度。还考虑了 Wifi Aware 和 Wifi P2P,但这些都存在设备之间不共享互联网连接的问题。

关于如何处理这个问题有什么建议吗?

最佳答案

这个问题已经回答过很多次了。正如 Snehashish Agarwal 所说,setWifiApEnabled() 和 startThethering() 方法是私有(private) API。它们用@hide 注释,这意味着它们是私有(private)的。第三方应用程序不应直接调用私有(private) API。不能保证他们将来会工作。就像你的情况一样。

此外,startLocalOnlyHotspot将无法访问互联网。连接Wifi热点的设备之间通信是本地唯一热点,这种方式不会上网。

目前,没有用于启用移动热点的官方 API 调用。

关于android - 如何以编程方式启用 Android O WiFi 热点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284914/

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