如何以编程方式访问 chromecast 图标

Posted

技术标签:

【中文标题】如何以编程方式访问 chromecast 图标【英文标题】:How to get access to the chromecast icon programaticailly 【发布时间】:2015-12-03 16:45:46 【问题描述】:

我正在尝试获取对作为演员图标的 MediaRouteButton 的引用,并且我一直得到一个空值。只是想看看是否有人知道如何获得对这个按钮的引用。我正在使用 onGlobalLayoutListener 来获取通知。

【问题讨论】:

您能解释一下(1)您的用例和(2)您使用的是 CCL 吗? 我正在使用 CCL 库,但我正在尝试使用 ShowcaseView github.com/amlcurran/ShowcaseView 我无法显示展示视图。问题是我得到空值。我可以发布 sn-p 但不能发布代码,因为它是私人公司。 final View button = activity.getWindow().getDecorView().findViewById(R.id.media_route_menu_item); ) 这是我试图调用的,它返回 null。 【参考方案1】:

如果您使用 CCL,您应该可以轻松使用 ShowCaseView;看看CastVideos-android 应用程序,看看它是怎么做的,基本上你可以使用回调onCastDeviceDetected() 在投射按钮出现时得到通知,然后执行以下操作:

        Menu menu = mToolbar.getMenu();
        View view = menu.findItem(R.id.media_route_menu_item).getActionView();
        if (view != null && view instanceof MediaRouteButton) 
            new ShowcaseView.Builder(this)
                    .setTarget(new ViewTarget(view))
                    .setContentTitle(R.string.touch_to_cast)
                    .build();
        

这假设您有一个工具栏。

编辑: 如果您有 ActionBar,请尝试以下操作:

new ShowcaseView.Builder(this)
    .setTarget(new ActionViewTarget(this, ActionViewTarget.Type.MEDIA_ROUTE_BUTTON))
    .setContentTitle(R.string.touch_to_cast)
    .build();

在某个时候,我已经向 ShowCaseView 项目提交了一个补丁来覆盖 MediaRoute 按钮,因此希望它仍然有效;自从我现在使用工具栏以来,我最近没有尝试过。

【讨论】:

是的,问题是我没有工具栏。我正在使用操作栏。 我编辑并添加了另一种方法,试试看

以上是关于如何以编程方式访问 chromecast 图标的主要内容,如果未能解决你的问题,请参考以下文章

Android - 以编程方式访问相机和图库图标和标签

有啥方法可以以编程方式从网站 URL 中获取徽标图标?

iPhone如何以编程方式访问通知中心

如何以编程方式使应用程序图标位置固定在跳板中

如何以编程方式更改解析推送通知图标?

如何以编程方式为 UIButton 添加系统图标?