我正试图实施一个"分享图像"我的Android应用中的按钮。由于图像可能对用户是私有的,我不希望它公开保存在设备上,因此我选择使用缓存。
在我发现只有所有者应用程序可以访问缓存目录之前,我注意到将图像共享到Dropbox工作得很好(而其他应用程序则抛出异常)。 如果该文件位于我的应用缓存中,Dropbox如何访问该文件?
我的共享位图方法(剥离了异常处理):
final File outputFile = new File(getCacheDir(), filename);
// Save file
FileOutputStream out = new FileOutputStream(outputFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
// Get path of file
Uri bmpUri = Uri.parse(outputFile.getAbsolutePath());
// Share image
final Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setData(bmpUri);
intent.putExtra(Intent.EXTRA_STREAM, bmpUri);
intent.setType("image/*");
startActivity(Intent.createChooser(intent,"Share Image"));
答案 0 :(得分:1)
我认为这是因为Dropbox app具有以下特定权限:
System tools
test access to protected storage
我还发现此许可似乎是WRITE_EXTERNAL_STORAGE
权限的孩子。