마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

외부저장소 퍼미션...

0 추천

외부저장소에 생성되어 있는 폴더 안의 파일을 수정하는 앱을 만들고 있습니다..

분명이 매니페스트에 퍼미션 쓰고 메인 액티비티에 퍼미션 요청 함수도 만들어서 사용자의 퍼미션 동의까지 받았지만 파일 수정할때 java.io.FileNotFoundException을 뿜네요.. 어떻게 해야 수정이 가능할까요??

아래코드는 퍼미션 요청과 결과값 받는 코드이며 start()가 앱 초기 설정들 시작하는 함수입니다. 

private void requestExternalStoragePermissions() {
        if (Build.VERSION.SDK_INT >= 23) {
            if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(this, "Permission granted to write your External storage", Toast.LENGTH_SHORT).show();
                start();
            }
            else {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
            }
        }

    }
    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case 1 : {
                // If request is cancelled, the result arrays are empty.
                if (grantResults.length > 0&&grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
                    start();
                }
                else {
                    Toast.makeText(this, "Permission denied to access your External storage", Toast.LENGTH_SHORT).show();
                }
                return;
            }
        }
    }

 

mandoo (140 포인트) 님이 2019년 1월 27일 질문

2개의 답변

0 추천
언급된 외부저장소가 어디인지에 따라 달라지겠죠.

해당 퍼미션을 얻어도 접근할 수 있는 곳은 매우 제한적입니다.
디자이너정 (42,810 포인트) 님이 2019년 1월 27일 답변
cursor를 이용해서 모든 저장공간에서 음악 파일을 찾고 찾은 경로에 있는 음악을 수정하려고 합니다.. 불가능한건가요??
0 추천
애초에 권한을 받았어도 못 들어가는 경로의 파일이면 못 찾았을테니 권한이랑은 상관없을 것 같아요.

어쨌거나 파일을 못 찾는다는 에러이니 경로 중 일부만 사용하고 있거나하지는 않는지 로그를 찍어보세요.
쎄미 (162,410 포인트) 님이 2019년 1월 28일 답변
...