共享意图 - 从另一个应用程序到我的应用程序空指针
Share Intent - from another App to my App nullpointer
我想分享图片、视频或其他东西,例如。 whatsapp,通过分享到我的应用程序。
图片示例:
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
[...]
in.putExtra(Constant.SHARE_URI, imageUri.toString());
所以在我的主要活动中
Uri selectedImage = shareUri;
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
这适用于图库,但不适用于其他应用程序,例如 Whatsapp。
我的应用程序马上就会崩溃。
我发现那条路径是错误的,从 gallery 的 /storange 和从 whatsapp 的 /content。
我如何将 /convert 转换为 /storage?
我完成了,没有转换 uri...
我正在使用此代码检查文件路径
if (selectedImage != null && "content".equals(selectedImage.getScheme())) {
Cursor cursor = this.getContentResolver().query(selectedImage, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
path = cursor.getString(0);
cursor.close();
} else {
path = selectedImage.getPath();
}
我想分享图片、视频或其他东西,例如。 whatsapp,通过分享到我的应用程序。
图片示例:
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
[...]
in.putExtra(Constant.SHARE_URI, imageUri.toString());
所以在我的主要活动中
Uri selectedImage = shareUri;
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
这适用于图库,但不适用于其他应用程序,例如 Whatsapp。 我的应用程序马上就会崩溃。
我发现那条路径是错误的,从 gallery 的 /storange 和从 whatsapp 的 /content。 我如何将 /convert 转换为 /storage?
我完成了,没有转换 uri...
我正在使用此代码检查文件路径
if (selectedImage != null && "content".equals(selectedImage.getScheme())) {
Cursor cursor = this.getContentResolver().query(selectedImage, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
cursor.moveToFirst();
path = cursor.getString(0);
cursor.close();
} else {
path = selectedImage.getPath();
}