Android Market filters app - Telephony?

2019-01-18 06:11发布

问题:

I have the following Manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp.MainActivity"
    android:versionCode="1"
    android:versionName="1.0.0" >

    <supports-screens
        android:anyDensity="false"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="false"
        android:smallScreens="true"
        android:xlargeScreens="true" >

    </supports-screens>

    <uses-permission
        android:name="android.permission.RECEIVE_SMS"
        android:required="false" >
    </uses-permission>
    <uses-permission
        android:name="android.permission.SEND_SMS"
        android:required="false" >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION"
        android:required="false" >
    </uses-permission>
    <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION"
        android:required="false" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission
        android:name="android.permission.CALL_PHONE"
        android:required="false" >
    </uses-permission>

    <uses-sdk android:minSdkVersion="7" ></uses-sdk>

    <receiver
        android:enabled="true"
        android:name="com.myapp.receiver" >
        <intent-filter android:priority="10" >
            <action android:name="android.intent.action.DATA_SMS_RECEIVED" />

            <data
                android:host="localhost"
                android:port="12345"
                android:scheme="sms" />
        </intent-filter>
    </receiver>

If i uploaded it to the Android Market the App is not visible for tablets like the Galaxy Tab 10.1.

I think the screen-settings are alright, because i have a second app with the same settings and this one is visible. So i think it is because of the Permissions..

Can somebody help me?

回答1:

What about adding this to your manifest:

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

(To be added right under your manifest tag)



回答2:

The Market seems to infer that telephony support is required whenever certain permissions are added to the AndroidManifest.xml, e.g. by default, READ_SMS or CALL_PHONE both seem to cause the Market to only offer the app to telephony enabled devices.

The best way to check if this is happening is to log onto your Android Market publishing account, and look for the "Required device features" section:

Now look at the "Show devices" link above. This is really useful for checking exactly which device models your app can be downloaded on.

Click "Show devices", and then search for the devices that you are interested in. The "Xoom" is a good one to check as at the moment it is wifi only, and doesn't currently include any telephony support:

Other devices can be more tricky. The Samsung Tabs have a range of devices, some with telephony capabilities (you need to click on the "Samsung" link under the "Manufacturer search results" to see these lists):

...and some without telephony (which in this case makes them unsupported for my app):

The fix is to set telephony to be optional in the AndroidManifest.xml for your application:

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

Even when Android thinks a device doesn't support telephony (e.g. a wifi-only Samsung Tab), it might support telephony in a non-native way (e.g. Skype). For more information, see my answer here:
Android Device phone call ability



回答3:

try to add this:

 <supports-screens
          android:largeScreens="true"
          android:normalScreens="true"
          android:smallScreens="true"
          />