我想将手机屏幕发送到桌面。 (使用套接字),如Mobizen App
首先,我需要手机屏幕。
我知道如何保存活动屏幕。 像这样。
View v1 =L1.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bm = v1.getDrawingCache();
FileOutputStream out = null;
try {
out = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+"/capture.png");
bm.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
// PNG is a lossless format, the compression factor (100) is ignored
} catch (Exception e) {
e.printStackTrace();
}
但这只是可能的活动。
我想在后台捕获一个屏幕作为服务。 并且当前的手机屏幕将发送到桌面。
那么,如何获取当前的服务视图?
谢谢你。
答案 0 :(得分:2)
您的服务在与您的活动不同的上下文中运行。要制作屏幕截图,您需要在活动的上下文中。即使您可以将您的活动上下文定义为公共静态并从您的服务访问它,您也会冒险,在您在服务中处理上下文时,上下文会消失。如果您的活动被终止且您的服务仍在运行,则上下文消失,因此这不是正确的方法。
因此推荐的方法是在您的Activity中实际制作屏幕截图。如果制作屏幕截图的事件来自您的服务,您可以将服务中的BroadcastMessage发送到您的活动以触发屏幕截图。