Манифест Android: некоторые устройства не поддерживаются?

1

У меня есть приложение на Android Market, которое должно работать на всех >= Android 1.5. При тестировании это действительно работает, но я получаю сообщения от разочарованных пользователей, которых им не разрешено устанавливать из-за проблем с совместимостью. Два из них - HTC Hero, работающие под управлением Android 2.1 и HTC Wildfire (версия неизвестна).

Мой весь манифест ниже (Поскольку я не знаю, что случилось, я мог бы удалить что-то важное), как я вижу, это единственное, что Android Market ищет для информации о совместимости. Я каким-то образом исключаю определенные устройства?

  

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:debuggable="true">
    <activity android:name=".ShowStreams" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"></action>
            <category android:name="android.intent.category.LAUNCHER"></category>
        </intent-filter>
    </activity>

    <activity android:name=".menu.Settings" />
    <activity android:name=".ClearCache"></activity>
    <activity android:name=".settings.ManageFeeds"></activity>
    <activity android:name=".settings.DirectoryBrowser"></activity>
    <activity android:name=".settings.SourceSelector"></activity>
    <activity android:name=".settings.FlickrBrowser"></activity>
    <activity android:name=".settings.PicasaBrowser"></activity>
    <activity android:name=".parser.facebook.FacebookAuth">
        <intent-filter>
             <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />
             <category android:name="android.intent.category.BROWSABLE" />
             <data android:scheme="floatingimage"/>
        </intent-filter>
    </activity>
    <activity android:name=".settings.FacebookBrowser">
    </activity>
    <activity android:name=".parser.facebook.WebAuth"></activity>
    <activity android:name=".parser.facebook.FacebookAlbumBrowser"></activity>
    <activity android:name=".parser.facebook.FacebookFriendsBrowser"></activity>
    <activity android:name=".parser.facebook.FacebookFriendView"></activity>
    <activity android:name=".flickr.WebAuth"></activity>
    <activity android:name=".parser.flickr.FlickrAlbumBrowser"></activity>
    <activity android:name=".parser.picasa.PicasaWebAuth"></activity>
    <activity android:name=".parser.picasa.PicasaAlbumBrowser"></activity>
    <activity android:name=".parser.picasa.PicasaUserView"></activity>
    <activity android:name=".settings.About" android:theme="@android:style/Theme.Dialog"></activity>
    <activity android:name=".menu.WallpaperSettings" android:exported="true" />
    <activity android:name=".menu.ApplicationFeedManagerLauncher"></activity>
    <activity android:name=".menu.WallpaperFeedManagerLauncher"></activity>

    <service android:name="Wallpaper"
             android:label="Floating Image"
             android:permission="android.permission.BIND_WALLPAPER">
             <intent-filter>
                <action android:name="android.service.wallpaper.WallpaperService" />
             </intent-filter>
             <meta-data android:name="android.service.wallpaper" android:resource="@xml/wallpaper" />
    </service>
</application>

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.BIND_WALLPAPER"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.software.live_wallpaper" />

<supports-screens 
    android:largeScreens="true" 
    android:anyDensity="true" 
    android:normalScreens="true" 
    android:smallScreens="true"
    android:xlargeScreens="true"
    android:resizeable="true" />
</manifest>
Теги:
google-play
android-manifest

2 ответа

2
Лучший ответ

После некоторых исследований, а также прошу в # android-dev, я обнаружил, что проблема связана с линией:

<uses-feature android:name="android.software.live_wallpaper" />

Это, по-видимому, является жестким требованием для приложения, и не обязательно для работы живых обоев.

  • 0
    Что вы подразумеваете под «жестким требованием»? У меня та же проблема. У меня было <uses-feature android:name="android.software.live_wallpaper" require="true"/> и мои тестеры не смогли установить. Я изменил его на «ложь», и теперь они могут установить, но он падает.
  • 0
    Это означает, что приложение требует наличия этой функции, чтобы оно функционировало вообще. Если его нет, Android блокирует установку. Теперь, если ваше приложение также выполняет другие функции, а живые обои - это всего лишь второстепенная функция, вы не хотите использовать этот тег. Не уверен, почему это не получится на новых дроидах, хотя ...
0

Я считаю, что ограничивающим фактором может быть следующее разрешение:

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

В соответствии со следующей страницей в документах android, это было представлено на уровне api 8. Возможно ли, что неподдерживаемые разрешения отфильтровываются для устройств, работающих на sdk на уровне api 7?

http://developer.android.com/reference/android/Manifest.permission.html#BIND_WALLPAPER

Ещё вопросы

Сообщество Overcoder
Наверх
Меню