【问题标题】:Android Manifest - device compatability list, missing Galaxy S2Android Manifest - 设备兼容性列表,缺少 Galaxy S2
【发布时间】:2026-02-11 22:50:01
【问题描述】:

我一直在准备发布我的应用程序,但遇到了设备兼容性问题,我只收到了大约 215 台设备或更少兼容的设备。对我来说最引人注目的是三星 Galaxy S2,现在我已经在这款设备上进行了彻底的测试,它运行良好。我想知道这里是否有人可以在我的清单中看到任何可能丢失/导致冲突的内容。

注意:在这个项目中使用 Unity android 和 OpenFeint。

这些是市场只表现得太明显的特征:

屏幕布局:SMALL NORMAL LARGE XLARGE 所需设备功能 android.hardware.touchscreen

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.openfeint.api" android:versionName="1.4.1" android:versionCode="6">
  <supports-screens 
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true" 
    android:anyDensity="true"
    android:resizeable="true" />
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false">
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation" android:screenOrientation="landscape">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation">
    </activity>
    <activity android:name="com.openfeint.internal.ui.IntroFlow"
                  android:label="IntroFlow"
                  android:configChanges="orientation|keyboardHidden"
                  android:theme="@android:style/Theme.NoTitleBar"
                  android:screenOrientation="landscape"/>

        <activity android:name="com.openfeint.api.ui.Dashboard"
                  android:label="Dashboard"
                  android:configChanges="orientation|keyboardHidden"
                  android:theme="@android:style/Theme.NoTitleBar"
                  android:screenOrientation="landscape"/>

        <activity android:name="com.openfeint.internal.ui.Settings"
                  android:label="Settings"
                  android:configChanges="orientation|keyboardHidden"
                  android:theme="@android:style/Theme.NoTitleBar"
                  android:screenOrientation="landscape"/>

        <activity android:name="com.openfeint.internal.ui.NativeBrowser"
          android:label="NativeBrowser"
          android:configChanges="orientation|keyboardHidden"
          android:theme="@android:style/Theme.NoTitleBar"
                  android:screenOrientation="landscape"/>
  </application>
  <uses-feature android:glEsVersion="0x00010001" />
  <uses-feature android:name="android.hardware.screen.landscape" android:required="false"/>
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/>
  <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="9" />
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.GET_TASKS"></uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
</manifest>

【问题讨论】:

    标签: android manifest compatibility device galaxy


    【解决方案1】:

    前面的答案不正确 - 您不能在使用权限中使用 required="false",它必须在使用功能中。像这样的电话状态:

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

    在此处了解更多信息:http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

    【讨论】:

      【解决方案2】:

      READ_PHONE_STATE 会在某些平板电脑上导致 Android Market 过滤,试试

      <uses-permission android:name="android.permission.READ_PHONE_STATE" required="false">
      

      【讨论】: