-1

私は自分のコードをすべて完成させ、スクリーンショットを撮るためにいくつかのコードを試しましたが、どれもうまくいきません。アクティビティ レイアウトで動作するものもありますが、それは望ましくありません。スクリーンショット UX のように、デバイスの任意の画面にスクリーンショットを撮りたいのですが、https://play.google.com/store/apps/details?id=com.liveov.shotuxtrialこれはルート アクセスでのみ実行できることを知っています。screencapやのようなメソッドについては聞いたことがありますdev/graphics/fb0が、" screencap" メソッドが私のデバイス (2.3.7) で機能しないことは知っています。メソッドの使用dev/graphics/fb0方法についてはまだよくわかりません...ライブラリの方法を試しましたが、うまくいきませんでした。誰かがスクリーンショットコードを取得するのを手伝ってくれることを願っています. 下手な英語でごめんなさい

4

2 に答える 2

0

ルート化されたデバイスでシェル コマンドを使用してスクリーン ショットを取得するためのコードは次のとおりです。「fileDestination」は、スクリーンショット ファイルを保存する場所のパスです。

try {
    Process process = Runtime.getRuntime().exec("su", null,null);

    OutputStream os = process.getOutputStream();
    os.write(("/system/bin/screencap -p " + fileDestination).getBytes("ASCII"));
    os.flush();
    os.close();
    process.waitFor();
} catch (IOException e) {
    Log.d(TAG,LOG_LABEL+" IOException e:: SCREENSHOT FAILED");
    e.printStackTrace();
} catch (InterruptedException e) {
    Log.d(TAG,LOG_LABEL+"InterruptedException e:: SCREENSHOT FAILED");
    e.printStackTrace();
}
于 2013-09-20T12:08:03.223 に答える
0

フレームバッファへのアクセスは、パーミッションによって制限されています。あなたが実行する場合

$ ls -l /dev/graphics   

あなたはそれを確認することができます

crw-rw---- root     graphics  29,   0 2013-07-10 10:21 fb0
crw-rw---- root     graphics  29,   1 2013-07-10 10:21 fb1
crw-rw---- root     graphics  29,   2 2013-07-10 10:21 fb2
crw-rw---- root     graphics  29,   3 2013-07-10 10:21 fb3
crw-rw---- root     graphics  29,   4 2013-07-10 10:21 fb4

アクセス ( rw) は にのみ許可されるroot:graphicsため、デバイスを root 化する必要があります。

于 2013-07-24T21:37:08.797 に答える