getPath () возвращает ноль при получении пути для выбранного изображения - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь загрузить изображение с Android на удаленный сервер.Я попробовал следующий код, но получил исключение нулевого указателя.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1 && resultCode == RESULT_OK) {
        //Bitmap photo = (Bitmap) data.getData().getPath();

        Uri selectedImageUri = data.getData();
        imagepath = getPath(FileUploadActivity.this,selectedImageUri);
        Bitmap bitmap= null;
        try {
            bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImageUri));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        imageview.setImageBitmap(bitmap);
        messageText.setText("Uploading file path:" +selectedImageUri);

    }
}
public String getPath(Context context, Uri uri) {

    String result = null;
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = context.getContentResolver( ).query( uri, proj, null, null, null );
    if(cursor != null){
        if ( cursor.moveToFirst( ) ) {
            int column_index = cursor.getColumnIndexOrThrow( proj[0] );
            result = cursor.getString( column_index );
        }
        cursor.close( );
    }
    if(result == null) {
        result = "Not found";
    }
    return result;
}

В строке int column_index = cursor.getColumnIndexOrThrow (proj [0]);значение column_index равно 0. Я не уверен, почему это происходит.Может кто нибудь разобраться в чем тут проблема.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...