我们一直在使用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也被考虑过,但它们的问题是设备之间不共享Internet连接。
您对如何解决这个问题有什么建议吗?
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也被考虑过,但它们的问题是设备之间不共享Internet连接。
您对如何解决这个问题有什么建议吗?