2013-03-27 29 views
10

私はアンドロイドアプリケーションからクリップボードマネージャを使用して他のアンドロイドアプリケーションに画像をコピーしたいと思います。私は多くを研究してthisチュートリアルを読んでいますが、画像のコピー部分はカバーしていません。画像をコピーする以下のコードは貼り付けようとしているが、画像のパスだけが貼り付けられる。クリップボードマネージャを使用してAndroidに画像をコピー貼り付け

ContentValues values = new ContentValues(2); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/png"); 
    values.put(MediaStore.Images.Media.DATA, "/mnt/sdcard/1.jpg"); 
    ContentResolver theContent = getContentResolver(); 
    Uri imageUri = theContent.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    ClipData theClip = ClipData.newUri(getContentResolver(), "Image", imageUri); 
    mClipboard.setPrimaryClip(theClip); 

画像の貼り付けをサポートするアプリで過去にしてみましたので、問題は「コピー」です。 すべての回答とアドバイスをいただければ幸いです。

+0

あなたは解決策を見つけましたか? – dangalg

答えて

2

このコードは機能し、テストするための適切なアプリとOSを見つけるだけです。

ClipboardManager mClipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
    ContentValues values = new ContentValues(2); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "Image/jpg"); 
    values.put(MediaStore.Images.Media.DATA, filename.getAbsolutePath()); 
    ContentResolver theContent = getContentResolver(); 
    Uri imageUri = theContent.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    ClipData theClip = ClipData.newUri(getContentResolver(), "Image", imageUri); 
    mClipboard.setPrimaryClip(theClip); 

編集: オリジナルのアンドロイドOSは、このような機能を持っていないので、私のさらなる調査によると、しかし、Androidのプラットフォームのほとんどでイメージ・コピーの過去はできません。上記のコードは、OSが変更されたいくつかのケースでのみ動作します。 たとえば、Samsung Noteタブレットでは機能します。ポラリス事務所で画像を過ぎることができます。 しかし、PolarisはSamsungが提供する隠されたAPIとして使用されています。そのアプリにはデバイスが付属しています。

+0

これは動作しません。これは何をテストしましたか? – PersuitOfPerfection

+0

gmailアプリで試してみました。イメージではなくイメージのパスを貼り付けています。私は何か間違ったことをしています。それをどう扱うか。私に知らせてください。 –

+0

@David_O:画像URIを取得しようとしましたが、Gmail /テキスト/その他のアプリに貼り付けようとするとURIが貼り付けられるだけです! URIではなく画像を貼り付けるにはどうしたらいいですか? – Neha

関連する問題