I\'ve coded my app so that it has some features which it prefers, but otherwise does not need as I want my app to be available to all devices. In my manifest I\'ve set:
On reflection the answer was obvious, as telephony is in lower-case. For some reason this requires lower case even though upper case works in my uses-permission declarations. Here's the code which worked:
<uses-feature android:name="android.hardware.screen.portrait" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
Hope this is helpful to someone else!