从服务中获取Android中的屏幕截图

时间:2014-02-13 17:04:44

标签: android service screenshot

我创建了一个在其他应用程序之上运行的服务。我希望服务能够在用户看到它时截取整个屏幕的屏幕截图,而不管正在运行什么应用程序。我可以让服务运行手机的屏幕截图功能并将其存储在特定位置吗?

2 个答案:

答案 0 :(得分:3)

  

我可以让服务运行手机的屏幕截图功能并将其存储在特定位置吗?

不,除了可能在root设备上,出于明显的隐私和安全原因。

答案 1 :(得分:0)

好吧,类似的问题在stackoverflow上非常流行:

How to programmatically take a screenshot in Android?

How to take screenshot programmatically?

how to take screenshot programmatically and save it on gallery?

特别是,这个是有用的:

// image naming and path  to include sd card  appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" +  
ACCUWX.IMAGE_APPEND;   

// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

OutputStream fout = null;
imageFile = new File(mPath);

try {
    fout = new FileOutputStream(imageFile);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
    fout.flush();
    fout.close();

} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

来自Mualig,来自上述一个帖子。