ファイル選択からファイル名を取得する。
◎選択呼出し側
static final int REQUEST_OPEN_FILE = 1001;
private Context context;
context = MainActivity.this;
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("text/csv"); //TEXT_CSV file only (←追記)
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Open a file"), REQUEST_OPEN_FILE);
◎選択後戻り
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (RESULT_OK == resultCode) {
if (REQUEST_OPEN_FILE == requestCode) {
Uri uri = data.getData();
String[] projection = {MediaStore.MediaColumns.DISPLAY_NAME}; // ※
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
String path = null;
if (cursor.moveToFirst()) {
path = cursor.getString(0);
Log.d("kyo", path);
}
cursor.close();
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
◎得られる情報
「ファイル名.csv」
※MediaStore.MediaColumns.DISPLAY_NAME
(追記)intent.setType("*/*");にすると単なるファイル選択になり後の処理は分かりやすかった。