ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • File 선택 화면
    Search: Android Android 2022. 8. 7. 18:20

    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

    FileSelEx1.7z
    0.09MB

     

    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

    댓글