我无法让 Cast Companion Library 通知正常工作

Posted

技术标签:

【中文标题】我无法让 Cast Companion Library 通知正常工作【英文标题】:I can't get the Cast Companion Library notification to work 【发布时间】:2014-02-26 22:34:11 【问题描述】:

我正在使用 Cast Companion Library,它大部分工作正常,我得到了迷你播放器,还有锁屏控件和播放内容的活动,但我永远无法显示通知屏幕。我在初始化时正在执行以下操作:

mCastMgr.enableFeatures(VideoCastManager.FEATURE_NOTIFICATION |
              VideoCastManager.FEATURE_LOCKSCREEN |
              VideoCastManager.FEATURE_DEBUGGING);

我在恢复时使用incrementUiCounter(),在暂停时使用decrementUiCounter()

我没有看到任何错误,我只是没有看到我做错了什么。我唯一缺少的是在告诉媒体播放时我没有传递图像的 URL,因为我的 URL 是我的应用程序的本地资产,我只是不知道如何传递这些。

【问题讨论】:

当您不在应用程序之外时,应该会显示通知;你试过那个场景吗? 是的,很多次。而且我没有看到任何错误。在 CCL 上是否有一个地方你会建议我设置一个断点来查看发生了什么? 我踩了代码,问题在VideoCastNotificationService的第158行,可见变量总是假的。 【参考方案1】:

您是在自己的应用程序中还是在CastVideos-android 中使用它?如果您自己的应用程序,首先我建议您尝试 CastVideos-android 应用程序以确保它适合您。

我建议你打印出BaseCastManager.incrementUiCounter()decrementUiCounter()mVisibilityCounter的值,看看当你进出不同的活动时,它是否反映了正确的计数器。当该计数器达到零时,应显示通知。如果计数器达到零并且通知未显示,我建议您检查清单文件,看看您的清单中是否包含以下内容:

<service
    android:name="com.google.sample.castcompanionlibrary.notification.VideoCastNotificationService"
    android:exported="false" >
    <intent-filter>
        <action android:name="com.google.sample.castcompanionlibrary.action.toggleplayback" />
        <action android:name="com.google.sample.castcompanionlibrary.action.stop" />
        <action android:name="com.google.sample.castcompanionlibrary.action.notificationvisibility" />
    </intent-filter>
</service>

(您可以从 CastVideos-android 清单文件中复制并粘贴)。您可能已经从文档中获取了它的内容;那里有一个错误(我计划今晚或明天更新一堆东西,文档也会更新);基本上,当计数器达到零时,它会调用通知服务(参见VideoCastManager 中的onUiVisibilityChanged()),如果清单中的该操作未正确设置,则通知永远不会得到我们的备忘录!如果这不是问题,请告诉我。

【讨论】:

一定是那个xml,因为它现在正在工作。猜猜我的老朋友说com.google.sample.cast.refplayer.notification.visibility 好。正如我所说,更新的文档将很快推送。 我现在确实遇到了一些 CCL 崩溃,例如,当我回到我的主要活动时,我在 VideoCastManager 的第 241 行收到了 IndexOutOfBoundsException VideoCastManager 中的行号 (241) 指向注释(查看 github 源代码),因此您的代码必须是旧的。请更新您的项目,如果仍然遇到崩溃,请在 github 项目上打开一个错误。 刚刚更新,现在是 252 行。我猜这与我没有传递图片有关,但我不知道该怎么做,因为我没有图片的网址,我有位图。我也不确定如何更改通知图标。【参考方案2】:

我也遇到了同样的问题。对于那些在 2016 年看到这个的人来说,仅供参考。清单条目现在不同了。我建议抓取 CastVideos-android 项目清单中的任何内容。

<receiver android:name="com.google.android.libraries.cast.companionlibrary.remotecontrol.VideoIntentReceiver" />

<service
    android:name="com.google.android.libraries.cast.companionlibrary.notification.VideoCastNotificationService" />

<service android:name="com.google.android.libraries.cast.companionlibrary.cast.reconnection.ReconnectionService"/>

【讨论】:

很高兴看到您在几天前发布了此内容。当我将它们放在清单中时,我实际上遇到了崩溃: java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfocom.myapp/com.google.android.libraries.cast.companionlibrary .cast.player.VideoCastControllerActivity @PaulRuiz 您是否还包括来自 github 的最新演员配套库? github.com/googlecast/CastCompanionLibrary-android 是的,我想通了 :) 有一个愚蠢的时刻,忘记在我的清单中包含演员活动

以上是关于我无法让 Cast Companion Library 通知正常工作的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Cast Companion Library 自定义迷你控制器?

静态内部类 vs Companion 的内部类

Libra的思考

Eclipse错误提示:The Eclipse executable launcher was unable to locate its companion shared library.

Safari Extension Companion 始终为空

联想右下角phone companion是啥,怎么用