答案 0 :(得分:33)
我用这个黑客修复错误:
...
Uri hacked_uri = Uri.parse("file://" + uri.getPath());
intent.setDataAndType(hacked_uri, "image/*");
...
答案 1 :(得分:4)
我将此代码用于我的应用并且工作正常。我只做了一次改变。
我改变了这个:
intent.setDataAndType(Uri.parse(posterFile.getAbsolutePath()),"image/*");
为此:
intent.setDataAndType(Uri.fromFile(posterFile),"image/*");
答案 2 :(得分:2)
我决定创建自己的Activity,它只是在屏幕上绘制图像。它不是一个完美的解决方案,但它符合我的基本标准......它有效:)
答案 3 :(得分:0)
我使用此代码
MediaScannerConnection.scanFile(PayamKhosusiActivity.this, new String[] { filez.toString() },
null, new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
Log.wtf("onScanCompleted", "yes");
Intent intent = new Intent(Intent.ACTION_VIEW, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setDataAndType(uri, "image/*");
intent.setFlags(FLAG_GRANT_READ_URI_PERMISSION | FLAG_GRANT_WRITE_URI_PERMISSION); //must for reading data from directory
startActivity(intent);
}
});