ルートなしでデバイスの画面をキャプチャできるアプリを作成したい: https://play.google.com/store/apps/details?id=com.icecoldapps.screenshotultimate
しかし、私は解決策を見つけることができません。誰か助けて?
どうもありがとうございました。
ルートなしでデバイスの画面をキャプチャできるアプリを作成したい: 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があります。
// 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));
アプリの FAQ から:
私のデバイスで利用できる「キャプチャ方法」がありません!
デバイスがルート化されていない場合、これは正常です。これが Android セキュリティ モデルのしくみです。一部のデバイスでスクリーンショットを撮ることができないだけです。ただし、コンピューターを介して有効にすることで、デバイスのスクリーンショット機能を有効にすることができます。これを行う方法を確認するには、「Screenshot Ultimate」>「設定」>「キャプチャ方法」>「キャプチャ方法のヘルプなし」に移動します。マニュアルを自分宛てに電子メールで送信して、コンピュータ (Windows、Linux、または Mac OSX) で完了することができます。