在 Android TV 上使用 MediaSessionManager.OnActiveSessionsChangedListener

3

我想监听Android TV上活动媒体会话的变化(具体来说是为了将我的Hue灯设置为“电影模式”)。在普通的Android设备上(4.3+),我会设置一个NotificationListenerService,以允许我调用MediaSessionManager.addOnActiveSessionsChangedListener()

问题在于,Android TV似乎没有UI来启用我的NotificationListenerService,也没有处理Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS的功能。是否有人知道另一种监听媒体变化的方法或在Android TV上启用NotificationListenerService的方法?这只是我个人使用,因此不需要可扩展的解决方案(adb可以接受)。


您使用的是哪个播放器?是安卓的MediaPlayer吗? - Andy
我没有使用任何MediaPlayer。我自己不播放媒体。我在监听其他应用程序播放媒体。 - keyboardr
我自己也在玩这个,然后看到了你的问题。我已经回答了ADB的问题。不过,出于好奇,你还发现了其他什么东西吗? - j__m
我还没有,所以看起来我要走ADB路线。 - keyboardr
很不幸。你会认为有人会再三考虑,不会发布一个无法创建第三方主屏幕来复制基本平台功能的Android产品。 - j__m
1个回答

2

从ADB shell中:

  1. 获取当前启用的通知监听器列表:

settings get secure enabled_notification_listeners

在我的电视上,默认情况下返回 com.google.android.leanbacklauncher/.notifications.NotificationMonitorService

  1. 将您的监听器添加到列表中,使用冒号分隔。

settings put secure enabled_notification_listeners com.google.android.leanbacklauncher/.notifications.NotificationMonitorService:com.example/com.example.MyNotificationListenerService


我正在尝试使用adb命令将我的应用程序设置为通知监听器,但是当我在Android设置中打开“通知访问”时,它仍未将我的应用程序启用为监听器。对此有何想法吗? - user565
在多用户设备上,确保您的settings put针对于正确的用户。 - j__m
实际上我正在手机上尝试,因此默认情况下只有一个用户。 - user565
你使用的用户数量并不重要。所有安卓手机从5.0开始都是多用户设备。 - j__m
好的,您能告诉我如何验证设置是针对哪个用户设置的吗? - user565
1
使用“pm list users”查找用户ID;它是包含您用户名的行中的第一个数字。然后,在这些命令的单词“secure”之前添加“--user#”。 - j__m

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接