-
Android에서 Intent를 사용하여 내장된 파일 선택화면으로 파일을 선택
int MyReqCode = 122333; //... Intent intent = new Intent().setType("*/*") .setAction(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(Intent.createChooser(intent, "Select a file"), MyReqCode);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == MyReqCode && resultCode == RESULT_OK) { Uri selfile = data.getData(); Toast.makeText(getApplicationContext(), getFilenameFromUri(selfile), Toast.LENGTH_LONG).show(); } } private String getFilenameFromUri(Uri uri) { String fn = ""; //선택된 경로 정보: uri.getPath() if(uri.getScheme().equals("contents")) { Cursor cursor = getContentResolver().query(uri, null, null, null, null); try { if (cursor != null && cursor.moveToFirst()) { fn = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); } } finally { cursor.close(); } } if (fn == null) { fn = uri.getPath(); int cut = fn.lastIndexOf('/'); if (cut != -1) { fn = fn.substring(cut + 1); } } return fn; }
소스파일
암호: infos
deprecated startActivityForResult
'startActivityForResult(android.content.Intent, int)' is deprecated
'Android' 카테고리의 다른 글
Android 권한 요청 하기 (0) 2022.08.08 usesCleartextTraffic (0) 2022.08.08 OkHttp 접속 전송 RestfulApi (0) 2022.08.08 File 선택 화면 (deprecated startActivityForResult) (0) 2022.08.07 RxAndroid (0) 2022.08.05 설치된 앱 목록 얻기 (0) 2022.08.02 Chronometer (0) 2022.07.30 Jetpack (0) 2022.07.28