[英]Sharing image from app private storage to Facebook
我试图采用一种非常通用的方法来提供共享选项,以便共享应用程序的私人存储中的图像,但是遇到了一个似乎特定于将图像共享至Facebook应用程序(com.facebook.katana)的问题:
通过ContentProvider,我通过在openFile()
返回以下内容来提供对所需文件的访问:
return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
与Facebook分享时,该图片不会显示。 但是,其他所有应用程序都可以正常工作。 在调试对我的ContentProvider的调用时,我看到Facebook确实确实在查询ContentProvider,并且点击了openFile()
。 但是,该图像没有出现。
经过一番摸索之后,我意识到我正在将null
作为MIME类型返回。 我将getType()
的结果更改为返回“ image / png”,就是这样:Facebook接受了我的图像:
@Nullable
@Override
public String getType(@NonNull Uri uri) {
// It's absolutely imperative that we provide the MIME type, otherwise some apps like
// Facebook will simply ignore the file
return "image/png";
}
我要指出的是,您应该返回与Uri关联的文件的实际MIME类型 。 我在这里返回PNG是因为我很懒,而且我知道我所有的图像都是这种类型的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.