【问题标题】:Android Manifest: Some devices are not supported?Android 清单:不支持某些设备?
【发布时间】:2011-04-05 17:08:59
【问题描述】:

我在 Android Market 上有一个应用程序,它应该可以在 >= Android 1.5 的所有设备上运行。测试时这似乎确实有效,但我从沮丧的用户那里得到报告,由于兼容性问题,他们不允许安装它。其中两个是运行 Android 2.1 的 HTC Hero 和 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>

【问题讨论】:

    标签: android xml android-manifest google-play


    【解决方案1】:

    经过一些研究,并在#android-dev 上询问,我发现问题出在以下行:

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

    这显然是应用程序的硬性要求,而不是动态壁纸功能所必需的。

    【讨论】:

    • “硬性要求”是什么意思?我有同样的问题。我有&lt;uses-feature android:name="android.software.live_wallpaper" require="true"/&gt;,我的测试人员无法安装。我将其更改为“false”,现在他们可以安装但它崩溃了。
    • 这意味着该应用程序需要此功能才能正常运行。如果不存在,Android 会阻止安装。现在,如果您的应用程序还做其他事情,而动态壁纸只是次要功能,您就不想使用此标签。不知道为什么它会在较新的机器人上失败......
    【解决方案2】:

    我认为限制因素可能是以下权限:

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

    根据 android 文档中的以下页面,这是在 api 级别 8 中引入的。是否有可能在 api 级别 7 上运行 sdk 的设备被过滤掉了不受支持的权限?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多