无法在Nexus 6上共享图像

时间:2016-08-19 17:41:43

标签: android android-sharing

我在尝试与其他应用程序共享图像时遇到了一个奇怪的问题。共享适用于Nexus 5,但在Nexus 6上失败 - 两者都运行6.0.1,两者编译完全相同。

对于Keep(或任何其他应用程序,就此问题而言)共享在5上工作正常。但是,在Nexus 6上,Keep无法附加图像。 logcat显示以下内容:

08-19 10:25:15.232  4491  4491 E Keep    : Image file not found
08-19 10:25:15.232  4491  4491 E Keep    : java.io.FileNotFoundException: /storage/emulated/0/Android/data/org.foo.bar/cache/share-1471627513628.png: open failed: EACCES (Permission denied)

文件已成功写入,因此不是权限问题。我可以在该位置看到该文件(使用adb shellls),因此并非它无法访问。我甚至可以使用adb pull下载文件并在图片查看器中打开它,因此它没有损坏。

这两款设备都没有根据,此功能以前在Nexus 6上运行时没有任何问题。

以下是相关代码:

File outputFile = new File(context.getExternalCacheDir(),
        "share-" + System.currentTimeMillis() + ".png");

Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);

// ..Do the actual rendering..

OutputStream stream = new FileOutputStream(outputFile.toString());
bmp.compress(Bitmap.CompressFormat.PNG, 80, stream);
stream.close();

Uri fileUri = Uri.fromFile(outputFile);

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.putExtra(Intent.EXTRA_STREAM, fileUri);

context.startActivity(Intent.createChooser(intent,
        context.getString(R.string.share)));

This post表示这是Android中的一个错误,但我不太确定。

build.gradle中的一些相关信息:

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 23
}

有什么建议吗?

0 个答案:

没有答案