我正在尝试从第三方应用程序(例如WhatsApp)获取图像到我的html" target="_blank">应用程序(正在Marshmallow上测试)。当我从WhatsApp“共享图像”并将其与我的应用程序共享时,我得到的URI如下所示:
content://com.whatsapp.provider.media/item/61025
但在我的应用程序中,当我调用GetContentResolver().OpenInputStream(uri)
或具有上述uri的GetContentResolver().OpenFileDescriptor(uri,“R”)
时,它会崩溃,并出现异常:
java.lang.SecurityException:权限拒绝:从ProcessRecord{a4b804a 30321:com.myapp/u0a145}(PID=30321,uid=10145)打开提供程序com.whatsapp.mediaProvider,而该提供程序不是从uid 10083导出的
到目前为止我所尝试的
我在SO上查找了这个例外情况,并发现提出了类似问题,但要从Google Photos导入图像,需要添加权限,如:
请有人能给出分享的提示或工作解决方案?
好吧。我找到问题出在哪里了。在我的应用程序的初始活动中,我将内容URI(我从WhatsApp或Chrome等第三方应用程序获得,例如content://com.WhatsApp.provider.media/item/61025)存储在一个数组中,并从其他活动中访问它。
那是不正确的。我从这个答案中得到了提示,在获得共享内容后,我立即从应用程序的launcher活动中调用了getContentResolver().OpenInputStream(uri)
。它起作用了,没有抛出任何异常。
我已经从谷歌阅读了这个标准描述:https://developer.android.com/training/sharing/receive 在此之后,我更新了我的AndroidManifest.xml,以包括一个意图过滤器来接受来自其他应用程序的共享(对于各种哑剧类型)。 我可以将我的应用程序视为其他应用程序中的共享选项,当我在其他应用程序中选择一个文件(例如,照片应用程序中的图像文件)并选择与
问题内容: 如何从Uri获取Bitmap对象(如果我成功将其存储在 以在应用程序中使用它? 有谁知道如何实现这一目标? 问题答案: 这是正确的方法: 如果您需要加载非常大的图像,则以下代码会将其加载到图块中(避免大内存分配):
我在从我的uri中检索位图时遇到困难。我试图通过Intent打开相机后从相机中获取图像。 记录时的ImageUri是 content://com.example/external_files/Pictures/CustomFolder/15122017_photo_115344.jpg 打开相机并拍照后,将调用我的onActivityResult。因为我用的是MediaStore。EXTRA_OU
我的API请求:\u HTTPS://myserver/getcaptchaimage?accesstoken=mytoken 响应:验证码图像 标题: 缓存控制私有内容类型图像/png日期2016年7月4日周一09:15:05 GMT服务器Microsoft IIS/7.5传输编码分块X-AspNet-Version 4.0.30319 X-Powered-By ASP。净额 我的代码(http
我正在处理使用通知侦听器服务类从通知中读取数据的应用程序。我已完成文本部分,但无法存储通知中收到的图像。 我想存储在WhatsApp应用程序中从通知中收到的图像。我已经尝试了堆栈溢出的所有解决方案,但没有得到任何解决方案。我已经尝试了<代码>通知。EXTRA_PICTURE但它总是返回null。 我见过许多应用程序这样做,但看起来我错过了一些东西。 因此,如果有人能以任何方式提供帮助,我们将不胜感
每当我试图从Intent获取uri时,它只是从图像选取器中选择一个图像,它在这里不起作用,这是我的代码。请尽快回答 这是日志: I/Error: java.lang.SecurityException: Permission Denial: read com.android.providers.media.MediaProvider uri content://media/external/ima