我试图从我的APK复制一个图像文件到剪贴板。
这里是我如何处理它(大致上,我正在使用本地的内容提供商,这是超出了问题的范围。
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.INTERNAL_CONTENT_URI, values);
ClipData theClip = ClipData.newUri(getContentResolver(), "Image", imageUri);
mClipboard.setPrimaryClip(theClip);
使用此代码可以发生两种情况:
1)java.lang.IllegalStateException:无法创建新文件2)粘贴时只粘贴URI本身,而不粘贴图像(即使在兼容的应用程序中)
我没有看到任何人在android上粘贴图片的例子,我已经在谷歌和堆栈溢出上广泛搜索了答案。
有人能帮忙吗?我真的很感激有人能帮忙。
PS:如果这是不可能做到的,我也想知道,以保存浪费更多的时间在这上面。
谢谢你!
4条答案
按热度按时间p1iqtdky1#
我有一个选择。使用应用程序SwiftKey作为您的Android键盘(它在Android 10上工作)。它允许你访问你的照片库,所以你需要1)下载图像2)打开你正在使用的任何应用程序,想要粘贴图像3)使用你的SwiftKey键盘,点击“+”信号,然后点击“pin”符号(应该在第一行)。4)最后,点击“新建”,它将访问您的照片插入在线任何地方。
我知道这不是最好的解决方案,而在iOS上,你可以点击复制和粘贴。但这是唯一的解决方案,为我工作。尝试为自己。我希望这有助于:)
r6vfmomb2#
没有迹象表明Android支持此类功能。
该行为是正确的,并且URI是复制的数据而不是位图。
这取决于您要粘贴的位置是否可以处理此uri。
8ehkhllq3#
OP的问题是
这是无效的MIME类型。它应该是
vptzau2j4#
你不能复制到剪贴板,因为这是不可能;但你可以通过复制到SD卡,然后从任何你想要的地方访问它;
下面是一些对我有很大帮助的代码,也可以帮助你: