Как я могу получить URI из текстового файла?

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

val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI)
intent.type = "image/*"
startActivityForResult(intent, SELECT_IMAGE)
2
0
523
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю ты мог бы попробовать

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
 intent.setType("text/*");
 startActivityForResult(intent,PICKFILE_RESULT_CODE);

следующий, чтобы получить URI

 @Override
 protected void onActivityResult(..., Intent data) {
 //do your validation

 switch (requestCode) {
        case PICKFILE_RESULT_CODE:
        ...
        Uri uri = data.getData();
        Log.d(TAG, "File Uri: " + uri.toString());
        try {
              Log.d(TAG, "File path: " + getPath(this, uri));
          } catch (URISyntaxException e) {
              e.printStackTrace();
          }
        //do your work
        ...
        break;
    }
}

Добавить в утилиты

public static String getPath(Context context, Uri uri) throws URISyntaxException {
if ("content".equalsIgnoreCase(uri.getScheme())) {
    String[] projection = {"_data"};
    Cursor cursor = null;

    try {
        cursor = context.getContentResolver().query(uri, projection, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow("_data");
        if (cursor.moveToFirst()) {
            return cursor.getString(column_index);
        }
    } catch (Exception e) {
        // Eat it
    }
} else if ("file".equalsIgnoreCase(uri.getScheme())) {
    return uri.getPath();
}

return null;
}

и теперь после этого, как я могу сделать метод для getPath (uri: Uri): String

Adrian Pang 27.06.2018 06:41

у меня есть такой метод, когда я делаю val projection = arrayOf (MediaStore.Images.Media.DATA)

Adrian Pang 27.06.2018 06:46

val colimn_index = cursor.getColumnIndexOrThrow (MediaStore.Images.Media.DATA)

Adrian Pang 27.06.2018 07:02

cursor.moveToFirtst ()

Adrian Pang 27.06.2018 07:02

и, наконец, верните cursor.getString (column_index)

Adrian Pang 27.06.2018 07:03

Я добавил метод. Попытайся.

Sree... 27.06.2018 07:14

какое значение имеет PICKFILE_RESULT_CODE?

Adrian Pang 27.06.2018 07:29

Это просто RequestCode (целочисленная константа).

Sree... 28.06.2018 06:34

Другие вопросы по теме