对 Android TV 和手机的多个 apk 支持

Posted

技术标签:

【中文标题】对 Android TV 和手机的多个 apk 支持【英文标题】:Multiple apk support for Android TV and Phone 【发布时间】:2016-03-27 08:33:11 【问题描述】:

我在市场上有一个具有 minSDK 版本 9 的应用程序,并且我还开发了此应用程序的 Android TV 版本具有相同的包名称,但 API 级别是重叠的。

所以,我的问题是; 如何上传 2 个具有相同包名的不同 apk(电视和手机/平板电脑)? android TV 的 APK 只能看到 TV 和 Nexus Player 等。其他 Apk 只能看到手机和平板电脑。

我确实阅读了有关多 APK 支持的所有文档,但当我通过当前可用的应用上传适用于 Android TV 的 APK 时,旧版本无法用于手机和平板电脑(不兼容)。

在我的情况下,两个不同的 APK 具有不同的包名称是不可接受的。

我必须有一个包名,两个不同的 APK,两者都必须可用于他们的兼容设备。

在我的电视应用清单中,使用了这些功能;

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

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

<uses-feature
    android:name="android.software.leanback"
    android:required="true" />

<activity
    android:name="com.mydomain.android.ui.ActivityYYY"
    android:icon="@drawable/my_banner"
    android:label="@string/app_name"
    android:logo="@drawable/my_tv_banner"
    android:screenOrientation="landscape">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

</activity>

我的手机/平板电脑应用程序没有使用功能,有正常的启动器,如下所示

<activity
    android:name="com.mydomain.android.ActivityXXX"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>

我该怎么办?在这一点上我错过了什么?我需要一个明确的解释或解决方案。

【问题讨论】:

您是否在开发者控制台中从“标准”模式切换到“高级”模式。如果不是,请检查来自开发者来源的this 文档。 @ravidl 谢谢,它是在“标准”模式下,我会在“高级”模式下再试一次。 【参考方案1】:

解决方法是切换高级模式,正确使用minSDK版本。

您最新的 APK 应具有最高的 minSDK 版本。

例如,如果您有 2 个不同平台的 apk,并且它们的 minSDK 版本不同,请先上传 minSDK 版本较低的 APK。然后,上传较高的。

现在我有 3 个 APK 在生产中。一切正常。

【讨论】:

【参考方案2】:

您需要确保您的两个 apk(电视和手机/平板电脑)的版本代码不相同。也让我们知道,什么对你有用(如果你已经弄明白了)。

【讨论】:

以上是关于对 Android TV 和手机的多个 apk 支持的主要内容,如果未能解决你的问题,请参考以下文章

可以在 Google Play 上为 Android TV 和智能手机发布相同的应用程序

我用android studio创建一个TV项目,打包成apk 后 安装出现如下错误是怎么回事?

分发具有不同包名的 Android TV 版本

如何使一个apk既可以在移动端也可以在android-TV中使用?

Android 在同一个手机上安装多个同样的apk,便于调试

Android为TV端助力 Linux命令查看包名类名