Original Post from Wayne Piekarski:
I've noticed that a few developers are publishing Android TV apps that require ACCESS_WIFI_STATE permission. This works fine on Android TV devices that are WiFi based, but there are also many Android TV devices that only have Ethernet, and more are coming soon. An app requiring ACCESS_WIFI_STATE will not be available for install to an Ethernet-only device, and you will be losing users by requiring this permission.
Most developers don't need access to WiFi specifics, so you should consider not including this in your AndroidManifest.xml. You can verify your final APK permissions with a command like this, and look for any mention of uses-permission:
aapt dump –values xmltree <your_apk_file> AndroidManifest.xml
You can also see the permissions summarized on Google Play with this URL:
In general, you should review all the permissions used by your app, and make sure you have a legitimate need for each of them. In some cases, 3rd party libraries can add these during the build process. The less permissions you need, the less friction there is finding compatible devices and getting users to install it. Make sure you think about all devices in the Android ecosystem (phone, tablet, TV, wear) and the different hardware each has or does not have. Remember, a TV typically doesn't provide a GPS, camera, or microphone like a phone.
If you really need a permission, but still want to run on devices that do not support it, you can use this in the manifest and check the result of any API calls:
<uses-feature android:name="android.hardware.wifi" android:required="false" />
See the uses-feature documentation for more information: