Permissions and Features

The Google Play Store filters applications for compatibility with devices based on items listed in the AndroidManifest.xml. If an application exports a required feature that SHIELD portable does not support, then that application will not even appear in the Google Play Store on SHIELD portable, and consumers will not have the ability to buy or download your application on SHIELD portable.

Required Versus Optional Features

Explicit features

Most of the features that an application needs are explicitly listed, such as:

<uses-feature android:name="android.hardware.camera"/>

This feature notation defaults to "required," meaning that the Google Play Store will filter out (hide) the application from any device that does not support the specified feature. A feature may be declared as optional by adding the required flag set to false, such as:

<uses-feature android:name="android.hardware.camera" android:required="false"/>

In this case, the application must check in their runtime code to ensure that the feature is supported before trying to use it. But in this way, the application will still be available for purchase/download on devices without the feature.

Implicit Features

Some permissions and other tags imply feature use. By default, features implied by permissions and other tags are required. Thus, without ever declaring a feature explicitly, your application may have implicitly declared a required feature and caused market filtering. For example, declaring the permission:

<uses-permission android:name="android.permission.CAMERA" />

Silently implies that you have declared the (required) feature:

<uses-feature android:name="android.hardware.camera"/>

As if you had added the feature line to the manifest yourself. To avoid being accidentally filtered by implied features, you would need to declare both:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>

And then check for the availability of camera at runtime.

For more details on permissions that imply features, please see:

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

Common Feature and Permission Issues on SHIELD Portable

There are some features that, as a dedicated game device, SHIELD portable does not currently support. Applications should take care to avoid making them required in order to be available for download/purchase on SHIELD portable.

Camera

This is a market-filtering situation for SHIELD portable applications.

SHIELD portable devices do not include front or rear camera hardware. Applications for SHIELD portable should either avoid:

AVOID <uses-feature android:name="android.hardware.camera"/> AVOID 
AVOID <uses-permission android:name="android.permission.CAMERA" /> AVOID

Or else be certain to declare:

<uses-feature android:name="android.hardware.camera" android:required="false"/>

And then test at runtime before accessing the camera APIs.

Portrait-only Orientation

This is a market-filtering situation for SHIELD portable applications.

SHIELD portable is a landscape-orientation device. Apps are filtered out of the Google Play Store on SHIELD portable if you declare the portrait orientation feature as required. Note this is an easy case to hit by accident, since even a simple screenOrientation Activity tag can cause it. Explicitly, we want to avoid using:

AVOID <uses-feature android:name="android.hardware.screen.portrait"/> AVOID

Note that various Activity tags in the manifest can imply this feature. We will discuss orientation further in the following section on screen handling.

 

 


NVIDIA® GameWorks™ Documentation Rev. 1.0.200608 ©2014-2020. NVIDIA Corporation. All Rights Reserved.