0

ネイティブの組み込み Android Web ブラウザーで、Web サイドからコピーした画像を取得する必要があります。「標準」のクリップボードではないため、組み込みアプリケーションの CopyPaste 操作にどのようなメカニズムが使用されているのか疑問に思っています。例えば。ブラウザーで画像をコピーした後 (クリップボードにコピーされたトーストが表示されます)、新しい SMS に貼り付けるときに、「クリップボード」のコンテンツを参照して、貼り付けたいものを選択できます。コンテンツには、テキスト、リンク、および画像を使用できます。

私のアプローチでは、バックグラウンドサービスでクリップボードリスナーを使用しています

    listener = new ClipboardManager.OnPrimaryClipChangedListener() {
        @Override
        public void onPrimaryClipChanged() {
            Log.d(LOG_TAG, "Clipboard content changed");
            processClipboardContent();
        }
    };
    manager.addPrimaryClipChangedListener(listener); // ClipboardManager

これは、クリップボードにコピーされたテキスト コンテンツに対して適切に機能します。ただし、このリスナーは、ブラウザで画像をコピーするときに通知されません。テストにはSamsung Galaxy S5を使用しています。組み込みブラウザでコピーされたコンテンツ (おそらく URI) を取得する方法はありますか?

4

1 に答える 1

0

私はこれを試しました。画像をクリックすると、クリップボードにコピーされ、好きな場所に貼り付けることができます。これがうまくいくことを願っています。

imgDeletePic.setOnLongClickListener(new OnLongClickListener() {

                    @Override
                    public boolean onLongClick(View v) {
                        // TODO Auto-generated method stub
                        try{
                             ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
                             ClipData clip = ClipData.newRawUri("Image", Uri.parse("file://" +strFilePath));
                             clipboard.setPrimaryClip(clip);

                             Toast.makeText(DeletePhotoActivity.this, "Sticker copied.", Toast.LENGTH_SHORT).show();
                        } catch(Exception e) {
                            e.printStackTrace();
                        }
                        return false;
                    }
                });
于 2014-12-24T07:18:18.633 に答える