Я пытаюсь получить изображение из галереи и отправить его путем модернизации. но я не могу получить путь записи в файл.
после поиска в SO я обнаружил, что с помощью data.getData не могу получить путь к файлу записи, и теперь я использую этот метод для получения пути к файлу:
public String getRealPathFromURI(Uri contentURI, Activity context) {
String[] projection = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = context.managedQuery(contentURI, projection, null,
null, null);
if (cursor == null)
return null;
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
if (cursor.moveToFirst()) {
String s = cursor.getString(column_index);
// cursor.close();
return s;
}
// cursor.close();
return null;
}
вот где я получаю результат, полученный из приложения галереи:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 100 :
if(resultCode == RESULT_OK && data != null){
attachmentFile = new File(getRealPathFromURI(data.getData(),this));
Toast.makeText(this,"File Explorer OK",Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(this,"File Explorer NOK",Toast.LENGTH_SHORT).show();
break;
}
но после использования этого метода и аналогичных, я получаю эту ошибку:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:160640 flg=0x1 }} to activity {com.x.TicketActivity}: java.lang.NullPointerException