【问题标题】:Activating screen cast by Intent通过 Intent 激活屏幕投射
【发布时间】:2016-10-14 21:55:07
【问题描述】:

有没有Intent会激活Google CastApp的屏幕镜像功能?

我需要使用此功能,我希望尽可能简化它的激活。

【问题讨论】:

    标签: android google-cast


    【解决方案1】:

    不,用户必须激活该功能。如果您想将自己的应用内容镜像到 Cast 设备,请使用 Google Cast Remote Display API。

    【讨论】:

    • 我去看看。谢谢。
    【解决方案2】:

    如果您有兴趣开发用于屏幕镜像的远程显示应用程序,可以使用库 castscreen,它将过程减少到几行代码。

    不幸的是,没有办法像 Google Cast 应用程序那样简化流程:它们使用 READ_FRAME_BUFFER 清单权限来获取用户的屏幕内容,而第三方应用程序必须明确要求用户获得屏幕捕获权限(出于明确的安全原因)。如果您使用与应用程序相同的私钥签署了自己的 ROM,则可以使用 READ_FRAME_BUFFER,尽管这对于大多数用例来说是不切实际的。

    【讨论】:

      【解决方案3】:

      这是一种实现镜像投射(不是谷歌投射)的简单方法。

      try {
              startActivity(new Intent("android.settings.WIFI_DISPLAY_SETTINGS"));
          } catch (ActivityNotFoundException e) {
              e.printStackTrace();
              try {
                  startActivity(new Intent("com.samsung.wfd.LAUNCH_WFD_PICKER_DLG"));
              } catch (Exception e2) {
                  try {
                      startActivity(new Intent("android.settings.CAST_SETTINGS"));
                  } catch (Exception e3) {
                      Toast.makeText(getApplicationContext(), "Device not supported", Toast.LENGTH_LONG).show();
                  }
              }
          } 
      

      拥有这些权限:

      <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      

      【讨论】: