0

嗨,我对 android 很陌生,我只是将工作从 iOS 转移,所以我对 android 不太了解。

我想创建 android 设备屏幕监控应用程序。它可以通过WiFi同时看到其他android设备的屏幕,也可以将屏幕广播到其他设备。

我想通过简单地捕获屏幕并将其发送到主机来使用 UDP 广播屏幕。无需实时显示屏幕上的内容就足够了。

通过使用计时器调用此方法

private void captureScreen() {
    final View rootview1 = findViewById(R.id.root).getRootView();
    rootview1.setDrawingCacheEnabled(true);
    Bitmap bmp = rootview1.getDrawingCache();
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 20, bytes);//lower quality faster
    byte[] byteArray = bytes.toByteArray();


    packetToSend.setData(byteArray);//send image

    rootview1.setDrawingCacheEnabled(false);


}

现在我可以发送我的应用程序视图并正确显示在主机上。

我的问题是,如果我将此方法作为服务运行,我如何在打开其他应用程序(如浏览器、游戏、电影)或仪表板时找到当前视图?

请帮忙

谢谢。

4

1 回答 1

1

我的问题是,如果我将此方法作为服务运行,我如何在打开其他应用程序(如浏览器、游戏、电影)或仪表板时找到当前视图?

幸运的是,出于明显的隐私和安全原因,这是不可能的。欢迎您以这种方式分享您自己的 UI(根据您的代码);您不能以这种方式共享其他应用程序的 UI

有多种选项可用于有根设备,但鉴于最近对 Android UI 管道的更改,我已经忘记了它们的工作情况。

于 2013-11-07T14:13:34.230 回答