2

my application is available on playstore. when i search the my application in tablet, it is not showing app list. in playstore optimation tips showing "Your APK should only require hardware features that are usually available on tablets"

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

     <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.CAMERA" android:required="false"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CALL_PHONE" android:required="false" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="false"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="false"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" android:required="false"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"  android:required="false"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS" android:required="false"/>
    <uses-permission android:name="android.permission.WAKE_LOCK" />
sunil
  • 300
  • 3
  • 20

4 Answers4

2

There is no android:required attribute for <uses-permission>. Hence, remove those, as they are doing you no good.

Then, you will want to review the list of permissions that imply feature requirements and make adjustments to your <uses-feature> elements as desired.

For example, by requesting the CALL_PHONE permission, you are indicating that the device has to have telephony capability. If you do not want that, add <uses-feature android:name="android.hardware.telephony" android:required="false"/> to your roster of <uses-feature> elements.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
1

Some permissions in your manifest may act as filters that filter search results in play store. eg: CALL_PHONE, READ_PHONE_STATE etc.

Please modify your manifest file as following:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />


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

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

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

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

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

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

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

Also you need to programatically check for hardwares and must avoid crash in devices that does not have that hardware.

Thanks,

MithunRaj
  • 543
  • 2
  • 7
  • 19
0

You need to add this in your manifest:

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

Instead of the CALL_PHONE permission add these permissions:

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

Take a look at this related question:

can't find app on market

Once check your permissions you specified in manifest.If the device doesn't support one of these (doesn't have a simcard, doesn't support GPS,WiFi etc), then you probably can't find it.

Community
  • 1
  • 1
Shailendra Madda
  • 20,649
  • 15
  • 100
  • 138
  • i mean both are need or not permmision – sunil Jun 14 '14 at 10:58
  • asking CALL_PHONE featue 06-14 16:38:01.195: E/AndroidRuntime(6090): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxx-xxx-xxxx cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{40b82318 6090:com.webappclouds.salondebonair/10111} (pid=6090, uid=10111) requires android.permission.CALL_PHONE – sunil Jun 14 '14 at 11:09
  • Once check your permissions you specified in manifest.If the device doesn't support one of these (doesn't have a simcard, doesn't support GPS,WiFi etc), then you probably can't find it. – Shailendra Madda Jun 14 '14 at 11:26
  • but i want without simcard, need to show app in the playstore list – sunil Jun 14 '14 at 11:41
0

Try to remove all <uses-permission...> that you don't need.

Neoh
  • 15,906
  • 14
  • 66
  • 78