我想制作一个可以在没有 root 的情况下捕获设备屏幕的应用程序:https: //play.google.com/store/apps/details?id=com.icecoldapps.screenshotultimate
但我找不到解决方案。有人帮我吗?
非常感谢。
我想制作一个可以在没有 root 的情况下捕获设备屏幕的应用程序:https: //play.google.com/store/apps/details?id=com.icecoldapps.screenshotultimate
但我找不到解决方案。有人帮我吗?
非常感谢。
以编程方式,您可以通过使用 adb 执行以下命令来执行此操作:
adb shell /system/bin/screencap -p /sdcard/img.png
但是,要从应用程序中执行相同操作,您可以使用以下方法:
Process sh = Runtime.getRuntime().exec("su", null,null); //getting superuser permission to access /system/bin
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII")); //executing the command
os.flush();
os.close();
sh.waitFor();
在/sdcard/
你将有img.png这将是你的屏幕截图。
检查这是否可以帮助您。以下代码将帮助您捕获特定布局的屏幕
RelativeLayout screenShotLayout=(RelativeLayout)findViewById(R.id.ScreenShotLayout);
Bitmap Bitmapimage=Bitmap.createBitmap(screenShotLayout.getWidth(),screenShotLayout.getHeight(), Config.ARGB_8888);
screenShotLayout.setDrawingCacheEnabled(true);
screenShotLayout.buildDrawingCache();
Bitmapimage=screenShotLayout.getDrawingCache();
//Bitmapimage is the screenshot of the layout. Do your stuff with it
// 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();
}
要访问文件:
Uri uri = Uri.fromFile(new File(mPath));
从应用程序的常见问题解答:
我的设备没有可用的“捕获方法”!
如果您的设备没有植根,这是正常的。这就是 Android 安全模型的工作方式;它只是不允许在某些设备上截屏。但是,您可以通过计算机启用设备上的屏幕截图功能。要查看如何执行此操作,请转到“Screenshot Ultimate”>“设置”>“捕获方法”>“无捕获方法帮助”。您可以将手册通过电子邮件发送给自己,以便在您的计算机(Windows、Linux 或 Mac OSX)上完成。