没有WRITE_EXTERNAL_STORAGE权限分享应用截图?

时间:2017-03-04 12:24:34

标签: android

是否可以在不添加任何权限的情况下共享自己的应用截图?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

这是我的其他应用程序代码,可以复制到缓存和共享

public void sendFile(File paramFile) {

        String fileExtension = ".apk";
        File temporaryFile;
        try {
            temporaryFile = File.createTempFile(paramFile.getName(), fileExtension, getApplicationContext().getExternalCacheDir());
            copy(paramFile, temporaryFile);
        } catch (Exception e) {
            temporaryFile = paramFile;
        }
        Intent localIntent = new Intent();
        localIntent.setAction("android.intent.action.SEND");
        localIntent.putExtra("android.intent.extra.STREAM", Uri.fromFile(temporaryFile));
        localIntent.setType("application/*");
        localIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(Intent.createChooser(localIntent, ""));
    }

2 个答案:

答案 0 :(得分:0)

将您的图片保存到内部存储空间(例如getCacheDir()),然后use FileProvider将其保存到其他应用中。有关详情,请参阅the documentation

答案 1 :(得分:0)

您正在使用getExternalCacheDir()

它绝对是主要的youraplication特定目录的路径    外部存储设备,应用程序可以放置缓存    它拥有的文件。这些文件是应用程序的内部文件,而不是    通常作为媒体对用户可见。

这些文件没有强制执行安全措施。 无需添加读取或写入返回路径的权限。它始终可以访问您的应用程序。这仅适用于为包裹名称生成的路径。

android.Manifest.permission.WRITE_EXTERNAL_STORAGE 
android.Manifest.permission.READ_EXTERNAL_STORAGE