Question

I have an android application, now on android market.But this application is not visible for some devices,especially for some tabs. While running this application directly from system (not installing from market) works fine.

Here is the manifest file

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="xxxxx"
        android:installLocation="internalOnly"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="9" />
        <uses-feature
            android:name="android.hardware.telephony"
            android:required="true" />
        <uses-feature
            android:name="android.hardware.location"
            android:required="true" />
        <supports-screens
            android:anyDensity="true"
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:xlargeScreens="true" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
        <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <uses-permission android:name="android.permission.SET_WALLPAPER" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
        <uses-permission android:name="android.permission.RESTART_PACKAGES" />
        <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.INSTALL_PACKAGES" />

        <application
            <activity----
            </activity>

            <service------
            </service>

            <receiver ------
            </receiver>
        </application>

</manifest>

If I change required="false", what will happen?Does the code will crash?

Also,I have a Chinese tablet Crane_KA013,which have 'Phone' application but it does not listed 'telephony' feature while using PackageManager.getSystemAvailableFeatures().While running my application on this tablet(not installing from market),works fine and application is not visible for this device in market.

Why does this happen? How can i solve this?

Thanks in Advance

Was it helpful?

Solution

It looks as if you are requiring features that some devices may not have available to them. For example:

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

Here, you are telling the system that telephony is required, however, some tablets do not support this feature.

Here is a link to the Google API Guide that discusses this: http://developer.android.com/guide/topics/manifest/uses-feature-element.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top