Как получить путь к изображению android? - PullRequest
0 голосов
/ 20 февраля 2020

Я выбираю изображение галереи из моего приложения, используя

ACTION_GET_CONTENT

Теперь я хочу путь к этому изображению:

enter image description here

Но я получаю это так:

content: //com.android.providers.media.documents/document/image % 3A5793

Как я могу получить путь?

Я пробовал это, чтобы получить путь:

Uri uri = data.getData();
Log.e("Path is: "+uri);

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Ответ - не пытайтесь получить путь, потому что в Android 10 и более поздних версиях вы не сможете его получить или использовать.

Вы можете получить FileDescriptor или ввод / output Stream, который можно использовать в большинстве методов, которым необходим доступ к содержимому файла.

См. https://developer.android.com/training/data-storage/ для получения более подробной информации, поскольку это изображение, поэтому лучше использовать Media store. .

0 голосов
/ 20 февраля 2020

Попробуйте это:

Uri uri = data.getData();
        String picturePath = getPath( getActivity( ).getApplicationContext( ), uri);
        Log.e("Picture Path", picturePath);

public static 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...