【发布时间】:2019-07-22 05:24:45
【问题描述】:
我正在尝试从我自己的 Android TV 应用程序中启动 Amazon Prime for TV 应用程序 (https://play.google.com/store/apps/details?id=com.amazon.amazonvideo.livingroom)。不幸的是,PackageManager.getLaunchIntentForPackage() 返回 null。
// called inside a Fragment
val intent = activity?.packageManager?.getLaunchIntentForPackage("com.amazon.amazonvideo.livingroom")
startActivity(intent)
运行时抛出
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference
当然,我的 Android TV 上确实安装了 Amazon Prime for TV。此外,我可以使用此代码成功启动其他应用程序,如 com.google.android.youtube.tv 或 com.netflix.ninja
关于这个主题有一个类似的问题 (how launch amazon prime video app from within my android app using intent),但它不能解决我的问题 - OP 问题的解决方案是使用 PackageManager(我已经在使用)和 com.amazon.avod.thirdpartyclient,因为应用在手机/平板电脑而不是电视上运行
编辑:Intent.migrateExtraStreamToClipData() on a null object reference 不能解决我的问题。我在我的 Android TV 版本 11.5.09 上安装了 Google Play 服务,而导致另一个问题的错误(据说)已在 9.4.0 中修复。无论如何,公认的解决方案只是避免应用程序崩溃,而不是解决真正的问题。
【问题讨论】:
-
@KrystianG 我的 Android TV 上确实安装了 Google Play 服务。无论如何,我只为这个特定的包获得空意图,而不是每一个。
标签: android android-intent kotlin android-tv