您好,我正在尝试启用我的Android应用程序,以将应用程序生成的图像发布到Facebook或Twitter或instagram。我从其他人那里复制了一个确切的示例,但仍然无法正常工作。
public void ShareToSocialMedia(String application) {
Bitmap b =BitmapFactory.decodeResource(getResources(),
R.mipmap.ic_launcher);
Intent share = new Intent(Intent.ACTION_SEND);
share.setPackage(application);
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(getContentResolver(),
b, "Title", null);
Uri imageUri = Uri.parse(path);
share.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(share, "Select"));
}
我在电话中遇到错误
Uri imageUri = Uri.parse(path);
我不知道为什么。有人可以告诉我如何解决这个问题吗?
最佳答案
如果查看Uri.parse
的文档,则会发现如果传递的NullPointerException
是uriString
,它将抛出null
。
然后查看获取MediaStore.Images.Media.insertImage
所依赖的uriString
方法,文档指出如果由于任何原因导致图像存储失败,它将返回null
。
现在,关于这个原因是什么,您的猜测和我的一样好,但是search on Stackoverflow确实表明有些人也遇到类似的问题。