IOS 오브젝티브씨 와같이 파일을 가져오려고 한다.
developer.android.com/guide/topics/providers/document-provider?hl=ko
시뮬레이터와 실제 안드로이드폰에서의 모습입니다.
ACTION_OPEN_DOCUMENT을 통해 열어줍니다.
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("text/csv");
startActivityForResult(intent, READ_REQUEST_CODE);
onActivityResult 통해서 파일경로를 가져옵니다
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
if (data != null) {
Uri uri = data.getData();
Log.e("uri", uri.toString());
}
}
}
처음에 뒤에 10261같은 숫자로 나와서 이게 실제 경로가아니라서 파일을 못가져오는것이 아닐까 싶었는데
저상태로 파일을 읽고 가져올수 있습니다.
파일이름을 가져옵니다.
public String getFileName(Uri uri) {
String result = null;
if (uri.getScheme().equals("content")) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
try {
if (cursor != null && cursor.moveToFirst()) {
result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
}
} finally {
if (cursor != null) {
cursor.close();
}
}
}
if (result == null) {
result = uri.getLastPathSegment();
}
return result;
}
반응형
'Android' 카테고리의 다른 글
안드로이드 - Java CSV파일(.csv) 읽기 (0) | 2021.01.03 |
---|