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

타 앱으로부터 content uri 를 전달 받았는데 미디어 스토어에서 확인이 되지 않습니다. [closed]

0 추천

크롬 앱을 통한 서핑 과정에서 이미지를 다운받았고, 다운 받은 이미지를 크롬 내부 액티비티로 추정되는 앱(스위치 버튼으로 확인 시 회색 배경에 F 라는 아이콘을 가지고 있습니다. 폰에 설치된 앱을 모두 찾아보아도 해당 아이콘은 없더군요.)이 임시로 이미지를 보여줍니다. 이 화면에서 외부로 해당 이미지를 uri 로 보내는데, 제가 만든 앱으로 연결을 시도하니 계속 오류가 발생하더군요. 확인 결과 해당 uri 를 미디어 스토어에서 찾을 수 없어서 오류가 발생하는 것이었습니다. 크롬 내부 액티비티 앱에서 제 앱으로 전달한 uri 정보는 다음과 같습니다.

uri : content://downloads/my_downloads/135

mimeType : image/jpeg

임시로 캐싱된 uri 라서 이런 상황이 발생하는 게 아닌가 하는 생각이 드는데, 제 앱 말고 이미지 파일이 오픈 가능한 다른 앱들로의 연결은 잘만 되더군요. ㅠ

미디어 스토어에서 찾을 수 없는 uri 어떻게 처리해야 할까요? 도움 부탁드려요. 감사합니다.

참고로 다음은 제가 uri 를 검색할 때 사용한 코드입니다.

String strPath = uri.getPath();
            Uri requestUri = MediaStore.Files.getContentUri("external");
            String[] projection = {MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA};
            String selection = MediaStore.Images.Media.DATA + "=?";
            Cursor cursor = mApplication.getContentResolver()
                    .query(requestUri, projection, selection, new String[] {strPath}, null);

            if (cursor != null && cursor.getCount() > 0) {
                cursor.moveToFirst();
                int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns._ID));
                cursor.close();

... 생략 ...

 

THK (2,360 포인트) 님이 2017년 6월 22일 질문
회색님이 2019년 3월 5일 closed
...