我需要创建两个应用程序,一个允许您从设备中选择图像文件并使用意图发送它。我的代码是:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/jpg");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "Share image using"));
此代码似乎有效,因为如果我使用gmail作为我的设计,它似乎工作正常。
我的问题似乎在Recieve应用程序中我无法显示图像,我尝试使用BitmapFactory,创建drawable等。它们总是出现null。我甚至将以下代码放入我的发送应用程序中:
Uri imageURI = Uri.fromFile(file);
String string = imageURI.toString();
string = string.replace("file://", "");
Drawable d = Drawable.createFromPath(string);
ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setImageDrawable(d);
显示图像正常,但是当代码放入接收应用程序时,d变为空。
我目前收到的代码如下:
private void handleSendImage(Intent intent) throws FileNotFoundException {
ImageView iv = (ImageView) findViewById(R.id.iv);
Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (uri != null) {
iv.setImageURI(uri);
}
}