所以我浏览了stackoverflow上的帖子,并没有真正提到如何将实际图像数据复制到剪贴板。我可以像这样将 uri 复制到剪贴板:
ContentValues values = new ContentValues(2);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg");
values.put(MediaStore.Images.Media.DATA, android.os.Environment.getExternalStorageDirectory() + path);
ContentResolver theContent = getContentResolver();
Uri imageUri = theContent.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
ClipData theClip = ClipData.newUri(getContentResolver(),"Image", imageUri);
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setPrimaryClip(theClip);
这让我可以在之后粘贴 uri,除非您控制活动,否则在大多数情况下这是毫无价值的。
我也可以像这样直接将图像数据发送到意图:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
sendIntent.putExtra("thread_id", (long) 1);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.setType("image/*");
startActivity(sendIntent);
虽然这很有用,但我可以清楚地看到,通过转到图库并在下拉菜单中选择“复制到剪贴板”,可以将图像粘贴到剪贴板。这让我可以将所述图像粘贴到信使、电子邮件、聊天等。从 4.4.2 开始的大多数 Android 浏览器似乎也可以这样做。是否有任何人可以指向我的工作代码或将图像数据实际复制到键盘而不仅仅是 uri 的指针?我可以看到这是可能的,在这一点上我有点没有想法了。
这是我正在使用的 uri 的一个有效示例:“content://media/external/images/media/63”