I have a question:
An application that specifies - uses-feature ... "android.hardware.faketouch" android:required="true"
- in its Manifest file, will be also shown in the Market how an application that can run in touchscreen devices?

- 35,493
- 19
- 190
- 259

- 161
- 1
- 1
- 6
-
I did not understand your question but if you mean that the faketouch required apps will appear in the touch section then yes, they will. It makes sense that it should because it has touch support. – Robert Massaioli Jun 29 '11 at 23:59
-
I want more audience for my application, because it uses simple touch events. For this reason, I want to specify in my manifiest file: uses-feature ... "android.hardware.faketouch" Sorry for my english! – Andrea Grassano Jun 30 '11 at 00:48
-
...you do know that you could always try it and see if it works right? If it does not work then you could just change the manifest and do a quick reupload. Then come back here and let everyone know what happened. – Robert Massaioli Jun 30 '11 at 00:51
-
thanks! when I publish my app I will do this. – Andrea Grassano Jun 30 '11 at 01:57
2 Answers
If you specify a requirement for android.hardware.faketouch
, then all genuine touch devices will still see the app listed.
faketouch
is a superset of touchscreen
, so anyone with a real touchscreen has implicit support for faketouch
, as they can perform all the actions supported by it.
However there is a minor quirk with the Market in that you need to override the implicit touchscreen entry and add required=false
to it. Failing to do this will mean that the market lists both touchscreen and faketouch as required, thus still not showing it to faketouch only devices.
Your manifest should therefore contain:
<uses-feature android:name="android.hardware.faketouch"/>
<uses-feature android:required="false" android:name="android.hardware.touchscreen"/>
This will allow your app to show for the full range of devices including faketouch only ones.
-
1You said "faketouch is a superset of touchscreen". But this document below said .touchscreen is a superset of the .faketouch feature. https://developer.android.com/guide/topics/manifest/uses-feature-element – Fisher Jul 29 '21 at 16:30
http://www.saschahlusiak.de/2012/10/android-hardware-faketouch-vs-android-hardware-touchscreen/
By default, an Android application requires the feature android.hardware.touchscreen, which is then used for filtering in Google Play, so only devices, that have touchscreen capabilities, will be able to install that app.
Besides that, there is a more basic feature, android.hardware.faketouch.
If the application does not require touchscreen features, it is recommended to set android.hardware.touchscreen to not be required, but declare android.hardware.faketouch instead.
<uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.hardware.faketouch" android:required="true" />
If you do that, check the results on Google Play, which shows the number of supported devices:
- touchscreen required, faketouch not required: 1500
- touchscreen not required, faketouch required: 860
- neither required: 1800

- 35,493
- 19
- 190
- 259