Приложение для 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, и в настоящее время он не включает поддержку телефонии:
Другие устройства могут быть более хитрыми. На вкладках 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"
/>