All articles

Technical

Fixing TWA Device Compatibility Issues in Google Play

October 27, 2026 · 8 min read

When you convert your Progressive Web App (PWA) into an Android package using a Trusted Web Activity (TWA), your web application is wrapped in a native Android shell. This shell contains metadata that informs the Google Play Store about the capabilities, requirements, and permissions of your application. While this process is generally smooth, many developers encounter a frustrating issue after uploading their package to the Google Play Console: the system reports that the app is incompatible with a surprisingly large number of Android devices.

Suddenly, devices like tablets, Chromebooks, television boxes, or specific smartphone models are marked as ineligible for installation. This compatibility filtering is almost always caused by implicit hardware requirements declared in your Android Manifest file. By understanding how Google Play evaluates hardware dependencies and learning how to explicitly override them, you can maximise your device compatibility and ensure your TWA is accessible to the broadest possible audience.

Understanding Android Device Compatibility Filtering

The Google Play Store uses a sophisticated filtering system to protect users from installing applications that cannot run on their hardware. If an application requires a physical camera with autofocus, it makes no sense to allow a user with a headless Android media box or a basic Chromebook to download it. To prevent poor user experiences and negative reviews, Google Play filters the application out of search results for incompatible hardware.

For a standard native app, this filtering is beneficial. For a TWA, however, it is often overly restrictive. Because your app is essentially a web application, it can degrade gracefully. If a user does not have a camera, your web interface can simply hide the camera capture button. However, if your native TWA wrapper declares that it uses the camera permission, Google Play assumes the physical hardware is an absolute requirement for the app to function at all, resulting in aggressive device filtering.

Implicit Hardware Requirements and the Android Manifest

The core of the issue lies in the relationship between Android permissions and Android features. When you request certain permissions in your native wrapper to allow your web app to access hardware APIs, the Android build system automatically infers that the corresponding hardware feature is mandatory.

For example, if you declare the permission to record camera video, the compiler automatically injects an implicit requirement for a physical camera. If you declare a fine location permission, the compiler infers that the device must possess a physical GPS module. This automatic assumption can instantly render your app incompatible with millions of tablets, Chromebooks, and budget devices that lack GPS hardware or rear-facing cameras but are otherwise perfectly capable of running your web application over Wi-Fi.

Common Hardware Features Implied by Web Permissions

To fix these compatibility blocks, you must first identify which permissions are triggering implicit hardware requirements. The table below lists the most common permissions declared in TWA wrappers, the hardware features they automatically imply, and the impact they have on device availability.

Declared PermissionImplied Hardware FeatureDevice Compatibility Impact
android.permission.CAMERAandroid.hardware.cameraFilters out devices without cameras, such as some Chromebooks and TV boxes
android.permission.ACCESS_FINE_LOCATIONandroid.hardware.location.gpsFilters out Wi-Fi only tablets, televisions, and devices without GPS chips
android.permission.RECORD_AUDIOandroid.hardware.microphoneFilters out specialized industrial displays and smart screens lacking mics
android.permission.CALL_PHONEandroid.hardware.telephonyFilters out almost all standard tablets and Chromebooks without SIM cards

How to Set Android Features as Optional

The solution to this issue is to explicitly tell the Google Play Store that while your application can make use of these hardware features if they are present, they are not strictly required for the application to run. You accomplish this by editing the Android Manifest file of your TWA wrapper.

You must add a uses-feature declaration for every implied hardware feature, setting the required attribute to false. This overrides the automatic inference engine and instructs Google Play to make the app available to devices lacking that hardware.

For instance, if your PWA has an optional profile picture upload feature that uses the device camera, your web code handles cases where no camera is found. To prevent Google Play from blocking devices without cameras, you must add the following lines inside the manifest tag of your configuration:

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

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

Similarly, if your app can optionally show the user nearby physical stores using location services, but can also run fine if the user manually enters a postcode, you must mark the GPS hardware as optional:

<uses-feature android:name='android.hardware.location' android:required='false' />

<uses-feature android:name='android.hardware.location.gps' android:required='false' />

If you have integrated web telephony links or SMS verification triggers, make sure you also mark telephony features as optional to keep your app available to tablet and Chromebook users:

<uses-feature android:name='android.hardware.telephony' android:required='false' />

Verifying Your Compatibility in the Google Play Console

Once you have configured your manifest files to set hardware requirements as optional, you should build a new version of your Android App Bundle (AAB) and upload it to the Google Play Console under a testing track.

After the console processes your package, navigate to the Device Catalog section under the Release menu. Here, you can inspect the exact list of supported and unsupported devices. If your changes were successful, you will observe a dramatic increase in the count of supported devices, and previously excluded hardware profiles will now be marked as supported.

By actively audit-checking your TWA manifest and explicitly declaring hardware features as optional, you protect your application from overly restrictive automated storefront filtering. This simple technical optimization ensures that your web application remains accessible, installable, and functional for users across the entire spectrum of Android form factors, from mobile handsets and tablets to desktop-style Chromebooks.

Ready to ship your Android app?

Paste your PWA URL, get a signed APK and a Google Play ready AAB in minutes.

Build my app