1

Androidコンテンツのルートビューのスクリーンショットを含むプロジェクトを取得しました。しかし、誰かが編集テキストをクリックし仮想キーボードを開くと、このキーボード ビューを写真に表示できません。つまり、Android コンテンツのルート ビューには仮想キーボードが含まれていません。どうすれば追加できますか? これが私のスクリーンショットコードです:

Bitmap bitmap;
    View v1 = this.findViewById(android.R.id.content).getRootView();
    v1.setDrawingCacheEnabled(true);
    bitmap = Bitmap.createBitmap(v1.getDrawingCache());
    v1.setDrawingCacheEnabled(false);
    OutputStream fout = null;
    imageFile = new File(filePath);
    try {
        fout = new FileOutputStream(imageFile);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fout);
        fout.flush();
        fout.close();
    }catch (Exception e) {
        e.printStackTrace();
    }

また、私はAndroidエミュレーターに取り組んでいます。今から回答をよろしくお願いします。

4

1 に答える 1

2

自分のアプリ内のビューのコンテンツしか取得できないため、これを行うことはできません。Android では、キーボードはサード パーティのアプリとしてカウントされ、そのビュー コンテンツを取得することはできません。

Android 4.0 以降 (または、それより前のバージョンを実行しているが、製造元によってスクリーンショット機能が追加されているデバイス (一部の Samsung Galaxy シリーズ デバイスなど)) にアクセスできる場合は、電源ボタンと音量を下げるボタン (Nexus 以外のデバイスではキーの組み合わせが異なる場合があります)。

それ以外に、一部のデバイスでは root アクセスが必要なフレームバッファの解析を試すことができます。通常、フレームバッファは/dev/fb0またはにあり/dev/graphics/fb0ます。一部のデバイス (LG Optimus One など) では root 権限なしでアクセスできますが、大部分 (Nexus S など) では root 権限が必要です。これは通常、セキュリティ上の理由から許可されていません。悪意のあるアプリがバックグラウンドでスクリーンショットを撮り、リモート サーバーに送信して、電子メール ID やパスワード、場合によっては銀行口座の詳細などの情報を明らかにする可能性があるからです。

于 2012-12-24T11:11:14.950 に答える