【问题标题】:On Android, how to check the phone screen is casting?在Android上,如何查看手机投屏?
【发布时间】:2023-01-19 22:31:56
【问题描述】:

我需要检查运行我的应用程序的 Android 手机是否使用在我的应用程序外部启用的 casting

似乎 CastSessionSessionManager 可以提供与我的应用程序相关的会话,这对我没有帮助。

例如,我可以使用名为 xx 的应用程序开始投射,它会投射或镜像我手机的整个屏幕。现在,我需要在打开我的应用程序时通知手机屏幕正在投射/镜像,这样我就可以防止在我的应用程序上显示特定内容。

【问题讨论】:

  • 请记住,您引用的 API 仅代表“转换/镜像”可能性的一小部分。您可以使用 DisplayManager 和/或 MediaRouter 来确定是否存在外部显示器,但我认为您无法知道该外部显示器上显示的内容。

标签: android google-cast google-cast-sdk


【解决方案1】:

您可以使用 MediaRouter 类检查手机屏幕是否正在投射。

以下是如何检查手机屏幕是否正在投射的示例:

MediaRouter mediaRouter = (MediaRouter) 
getSystemService(Context.MEDIA_ROUTER_SERVICE);
MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute();
if(route.isDefault()){
// Screen is not casting
} else {
// Screen is casting
}

此代码使用 MediaRouter 类的 getSelectedRoute() 方法来获取当前选择的路由。如果返回的 RouteInfo 对象是默认路由,则屏幕不投屏,否则投屏。

请注意,此代码使用 getSystemService(Context.MEDIA_ROUTER_SERVICE) 方法获取 MediaRouter 类的实例,因此应从 Activity 或 Service 上下文中调用它。

此外,您还可以使用 MediaRouter.Callback 和 MediaRouter.addCallback 设置回调来监视投射状态,这样您也可以获得投射状态更改的更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2019-06-11
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多