Android Studio 中的“要求 Wifi 权限限制了仅支持以太网的电视上的应用程序可用性”警告 - 对此有啥办法吗?

Posted

技术标签:

【中文标题】Android Studio 中的“要求 Wifi 权限限制了仅支持以太网的电视上的应用程序可用性”警告 - 对此有啥办法吗?【英文标题】:"Requiring Wifi permissions limits app availability on TVs that support only Ethernet" warning in Android Studio - can anything be done about this?Android Studio 中的“要求 Wifi 权限限制了仅支持以太网的电视上的应用程序可用性”警告 - 对此有什么办法吗? 【发布时间】:2022-01-02 11:02:53 【问题描述】:

我正在开发一个支持手机和电视的 android 应用(游戏),并且可以通过 LAN(WiFi 或以太网)或 WiFi Direct 玩多人游戏。

Android Studio 在清单中用 Lint 警告警告我,如果我“需要 Wifi 权限”,那么它将“限制仅支持以太网的电视上的应用可用性” (没有 Wifi 的电视)。

我也想支持没有 Wifi 的电视。多人游戏代码的编写方式可以处理仅限以太网的情况。

但是,Wifi相关的权限是普通权限,不能从manifest中移除它们的声明。

这里有什么办法可以让我的应用在这些没有 Wifi 的电视上可用?

【问题讨论】:

你添加a <uses-feature> element to say that WiFi is not required了吗? @CommonsWare - 不,我没有尝试过 - 阅读了链接页面后,似乎需要添加 <uses-feature android:name="android.hardware.wifi" android:required="false" />。我刚刚测试过,它解决了警告。谢谢,这是解决方案。随意发布它,我会接受! 有趣的是,我刚刚注意到 BLUETOOTHACCESS_FINE_LOCATION 权限声明有类似的警告,它们提供了自动修复操作,其中 Android Studio 添加了 uses-feature 和 @987654329 @ 分别代表蓝牙和 gps。但是关于这个 TV-Ethernet 的警告没有自动操作。 【参考方案1】:

某些权限,当您请求它们时,会导致 Android 发送到think that you need the associated hardware。在您的情况下,请求 ACCESS_WIFI_STATECHANGE_WIFI_STATE 会导致 Android 认为您需要 WiFi 硬件。

添加<uses-feature android:name="android.hardware.wifi" android:required="false" /> 会将“必须有 WiFi”降级为“可以使用 WiFi”。除了清除 Lint 投诉之外,它还有助于实际的应用程序分发,允许您的应用程序在只有以太网的硬件上运行。除了某些电视平台外,可能还有一些 Chromebox 也仅支持以太网。

但是对于这个 TV-Ethernet 事物的警告没有自动操作

我在the issue tracker 中没有看到关于此的错误报告。如果您准备创建一个包含 <uses-permission> 元素的一次性项目,您可以考虑提交功能请求,以将您寻求的快速修复添加到 Android Studio。

【讨论】:

感谢您快速详细的回答!我知道隐式使用功能声明的可能性(通过 CAMERA 和自动对焦看到它),但不知道文档中收集这些完整列表的位置,所以这非常有用。关于提出这个问题,我明天会调查并可能会提出。

以上是关于Android Studio 中的“要求 Wifi 权限限制了仅支持以太网的电视上的应用程序可用性”警告 - 对此有啥办法吗?的主要内容,如果未能解决你的问题,请参考以下文章

大神, 我的android studio中的虚拟机怎么联网?

android studio怎样运行打包后的apk

无法按照 Google“入门”页面中的说明在 Android Studio 中添加地图; Android Studio 报错

android studio 怎么添加module

android studio application怎么创建

android - android studio中的proguard错误