我使用Content Provider在Uri中发送文件。我已经使用以下代码执行此操作:
public Uri fileSharingUsingContentProvider(File tempFile)
{
String filePath = tempFile.getAbsolutePath(); // tempFile is the image file ....
Cursor mCursor = this.getApplicationContext().getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.Media._ID },
MediaStore.Images.Media.DATA + "=? ",
new String[] { filePath }, null);
if(mCursor != null && mCursor.moveToFirst()){
int id = mCursor.getInt(mCursor.getColumnIndex(MediaStore.MediaColumns._ID));
Uri baseUri = Uri.parse("content://media/external/images/media");
Trace.d(TAG,"<==> The baseUri after parsing : " + Uri.withAppendedPath(baseUri, ""+id));
return Uri.withAppendedPath(baseUri, "" + id);
}
else {
if (tempFile.exists()) {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, filePath);
return this.getApplicationContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
else {
return null;
}
}
}
但问题是,当我尝试通过 Instagram 分享时,此代码完全适用于除 Galaxy Note 2 之外的所有设备,其中图像文件已损坏即可。我尝试了几种方法但未能解决问题。如果有人对此事有任何想法,请帮助我。
提前致谢。
答案 0 :(得分:0)
经过长时间的研究,我终于找到了解决这个问题的方法。在我目前正在处理的应用程序的一部分中,我已经在智能手机内部存储中下载了图像。但是,如果图像分辨率高(6480 x 4320)像素,那么 Galaxy Note 2 无法在 Instagram 中上传图像。但对于低分辨率图像,它工作得很好。我想在下载图像时,我已经修复了图像分辨率。因此,如果有人遇到此类问题,您必须首先关注图像大小。
另一个重要问题是,此图像尺寸问题仅发生在 Galaxy Note 2中。对于其他设备,在Instagram上传图像时没有问题。