让“应用程序”在“索尼互联网电视”(Google TV)市场上亮相

时间:2012-03-25 18:50:56

标签: android xml google-tv android-market-filtering

我在让我的应用程序出现在GoogleTV的市场中时遇到了一些麻烦。我搜索了谷歌的官方文档,我不相信清单列出任何会使程序无效的元素;指定的唯一硬件要求是横向模式,唤醒锁和外部存储(根据文档,它们都不应该根据文档对GTV进行过滤)并且我将使用触摸屏元素“required”属性设置为false。

下面的

是我项目的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.whateversoft"
    android:versionCode="2"
    android:versionName="0.1" >

    <uses-sdk android:minSdkVersion="8" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="Color Shafted"
        android:theme="@style/Theme.NoBackground"
        android:debuggable="false">
        <activity
            android:label="Color Shafted"
            android:name=".colorshafted.ColorShafted" 
            android:configChanges = "keyboard|keyboardHidden|orientation"
            android:screenOrientation = "landscape">
            <!--  Set as the default run activity -->
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:label="Color Shafted Settings"
            android:name=".colorshafted.Settings" 
            android:theme="@android:style/Theme"
            android:configChanges = "keyboard|keyboardHidden">
            <!--                                  -->
        </activity>
    </application>
    <!-- DEFINE PERMISSIONS FOR CAPABILITIES -->
    <uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name = "android.permission.WAKE_LOCK"/>
    <uses-feature android:name="android.hardware.touchscreen" android:required="false"    />
    <!-- END OF PERMISSIONS FOR CAPABILITIES -->
</manifest>

我即将在下一个主要版本发布之后开始宣传这个应用程序,所以它有点令人失望,因为我似乎无法让它发挥作用。任何帮助将不胜感激,提前谢谢:)

4 个答案:

答案 0 :(得分:3)

如果您为自己的应用启用了正向锁定功能,它将不会在允许root用户访问的设备上显示在Google Play中。

答案 1 :(得分:3)

清单看起来不错,正如其他人所说,清单标签中存在轻微错误的可能性。

您可以使用以下命令检查并验证已编译的APK:

<强> aapt dump badging yourFileName.apk

检查结果输出是否有任何意外情况,例如权限隐式提取的功能。

(aapt是常规Android SDK的一部分)

答案 2 :(得分:1)

对我来说没问题。您可能要做的一件事是在部署时仔细观察logcat。 ADT插件不会在清单中强制执行100%的正确性。我发现我遇到了微妙的错误,我注意到的唯一方法是在应用程序部署时观察logcat。

以下是有关该主题的官方Google IO演示文稿,

  

http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en/us/events/io/2011/static/presofiles/developing_android_applications_for_google_tv.pdf

此页面介绍了清单功能如何影响Google TV的可见性,

  

https://developers.google.com/tv/android/docs/gtv_androidmanifest

答案 3 :(得分:0)

我发现了一些有助于确保显示的内容:

您的清单不仅应包含minSdkVersion,还应包含targetSdkVersion

<uses-sdk android:minSdkVersion="8" />
<uses-sdk android:targetSdkVersion="14" />

并确保您正在构建目标为14 +

同时添加supports-screens有助于:

<supports-screens android:resizeable="true"
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="false" 
        android:anyDensity="true"/>

最后:

  <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
  <uses-feature android:name="com.google.android.tv" android:required="false"/>

如果您的应用不仅适用于GTV,还适用于其他重要设备。