我无法让 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 自定义迷你控制器?
Eclipse错误提示:The Eclipse executable launcher was unable to locate its companion shared library.