android - "Permission denied"在我自己的 Activity 中尝试处理来自浏览器的 "Share Image" Intent 时

标签 android permissions android-intent

我正在尝试编写一个执行以下操作的简单 Activity : 用户按住在 Android 浏览器中查看的图像,然后按“共享图像”并选择我的 Activity 来处理它。我希望能够从我的 Activity 中打开图像文件。

文件路径最终为:/data/data/com.android.browser/app_sharedimage/SOME_FILE_NAME.jpg 并在路径上调用“File()”会导致权限错误: java.io.FileNotFoundException:/data/data/com.android.browser/app_sharedimage/SOME_FILE_NAME.jpg(权限被拒绝)

如何打开这个图像文件?我需要在 list 中添加一些许可吗?

相关代码如下:

        if (Intent.ACTION_SEND.equals(intent.getAction())) {
            if (extras.containsKey(Intent.EXTRA_STREAM)) {
                Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);

                String scheme = uri.getScheme();
                if (scheme.equals("content")) {
                    String mimeType = intent.getType();
                    ContentResolver contentResolver = getContentResolver();
                    Cursor cursor = contentResolver.query(uri, null, null,
                            null, null);
                    cursor.moveToFirst();
                    String filePath = cursor.getString(cursor
                            .getColumnIndexOrThrow(Images.Media.DATA));
                    ...
                    ...
                    new FileBody(new File(filePath)) 
                    ...

最佳答案

据我所知,除非您的手机已获得 root 权限,否则您将无法访问任何其他应用程序的私有(private)文件。所以我认为您将无法打开图像。

关于android - "Permission denied"在我自己的 Activity 中尝试处理来自浏览器的 "Share Image" Intent 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794735/

相关文章:

php - JSON获取特定用户的高分

Linux目录访问权限

android - 如果我将 List<Child> 放入一个 Intent 中,那么我会从另一个 Activity 中检索 List<Parent>

android - 解析错误 - 以编程方式安装 apk

Android Java - Joda Date 很慢

android - 在 ActionBarSherlock 选项卡导航中显示 Activity

android - 无法实现正确的相机和视口(viewport)

ios - Facebook iOS SDK 请求权限 publish_actions,但用户需要再次输入密码

c# - 如何使用用户权限而不是事件权限启动程序

android - 导出字符串时出错