Приложение для Android Market - Телефония?

У меня есть следующий Манифест:

<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>

Если я загрузил его в Android Market, приложение не будет видно для планшетов, таких как Galaxy Tab 10.1.

Я думаю, что настройки экрана в порядке, потому что у меня есть второе приложение с теми же настройками, и это видно. Так что я думаю, что это из-за разрешений..

Кто-нибудь может мне помочь?

3 ответа

Решение

Как насчет добавления этого в ваш манифест:

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

(Будет добавлено прямо под вашим тегом манифеста)

Маркет, похоже, делает вывод, что поддержка телефонии требуется всякий раз, когда определенные разрешения добавляются в AndroidManifest.xml, например, по умолчанию, READ_SMS или же CALL_PHONE Похоже, что и то и другое заставляет Market предлагать приложение только для устройств с телефонной связью.

Лучший способ проверить, происходит ли это, - войти в свою учетную запись публикации в Android Market и найти раздел "Необходимые функции устройства":

необходимые функции устройства

Теперь посмотрите на ссылку "Показать устройства" выше. Это действительно полезно для проверки, на каких именно моделях устройств может быть загружено ваше приложение.

Нажмите "Показать устройства", а затем найдите интересующие вас устройства. "Xoom" - это хороший вариант для проверки, поскольку на данный момент это только Wi-Fi, и в настоящее время он не включает поддержку телефонии:

Xoom поддерживаемые устройства

Другие устройства могут быть более хитрыми. На вкладках Samsung имеется ряд устройств, некоторые с телефонной связью (для просмотра этих списков необходимо щелкнуть ссылку "Samsung" в разделе "Результаты поиска производителя"):

Samsung поддерживает устройства

... а некоторые без телефонии (что в данном случае делает их неподдерживаемыми для моего приложения):

Samsung неподдерживаемые устройства

Исправление заключается в том, чтобы настроить телефонию как необязательную в AndroidManifest.xml для вашего приложения:

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

Даже если Android считает, что устройство не поддерживает телефонию (например, Samsung Tab только для Wi-Fi), оно может поддерживать телефонию не родным способом (например, Skype). Для получения дополнительной информации см. Мой ответ здесь:
Android Phone возможность звонить

Попробуйте добавить это:

 <supports-screens
          android:largeScreens="true"
          android:normalScreens="true"
          android:smallScreens="true"
          />
Другие вопросы по тегам