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

삼성폰(갤럭시S3/S5)에서 MMS 데이터 중 텍스트/이미지는 잘 읽어지는데, 동영상/주소록은 접근권한(canRead)이 없다고 나오는 문제

0 추천
삼성폰(갤럭시S3/S5)에서 MMS 데이터 중 텍스트/이미지는 잘 읽어지는데, 동영상/주소록은 접근권한(canRead)이 없다고 나오는 문제

MMS 데이터 가져오는 코딩 중에 문제가 생겨서 질문 드립니다.

텍스트/이미지는 얻어진 경로에서 잘 읽어지는데, 동영상/주소록은 접근권한(canRead)이 없어서 결국 FileNouTound로 나옵니다.

엘지폰(G2)에서는 동영상/주소록까지 잘 읽어집니다.

1. 코드

        Uri uriPart = Uri.parse("content://mms/part");
        Cursor cursorPart = contentResolver.query(uriPart, null, selectionPart, null, null);
                            if ("video/mp4".equals(type)) {
                                String videoPath = cursorPart.getString(cursorPart.getColumnIndex("_data"));
                            else if ("text/x-vCard".equals(type)) {
                                String vcfPath = cursorPart.getString(cursorPart.getColumnIndex("_data"));

리턴된 videoPath(예):
/data/data/com.android.providers.telephony/app_parts/PART_1491180844718_FILE000.mp4

2. 문제

위와 같이 part 테이블을 읽어서 비디오/주소록 파일의 경로를 얻어 왔습니다.

그런데 그 경로를 넘겨서 비디오를 재생하고 주소록 내용을 읽으면 엘지폰(G2)에서는 잘 되는데 ...

삼성폰(갤럭시S3/S5)에서는 파일 접근권한이 없는 것으로 나옵니다.

3. 검토 과정

구글링, 질문 - 지칠 정도로 해 보았습니다.

기본 메시지 앱으로 만들면 파일 접근권한을 줄까 싶어서 아래 그림과 같이 <기본 애플리케이션/메시지> 리스트에 나타나게까지 만들어 보았습니다.

DefaultSMS 프로젝트, Default Message App(기본 SMS 앱) (1)/[Android] http://blog.daum.net/andro_java/1135

물론 기본 앱으로 선택까지 해 보았으나, 여전히 접근권한이 없다고 나옵니다.

다른 메시지 앱을 보면 기본 앱으로 지정하지 않아도 잘 읽던데 ... 답답합니다.

4. 질문

이 문제를 해결할 수 있는 어떤 방법이 있는지 도와 주시기 바랍니다.
익명사용자 님이 2017년 4월 19일 질문
2017년 4월 19일 수정
에러스택좀 보여주실래요?
이제야 제대로 답변을 주실 분을 만난 것 같아 가슴이 떨립니다.
문제는 Fatal 에러로그가 찍히지 않고 소스의 어떤 줄도 지적해주지 않기 때문에, 아직 초보자인 저로서는 막막하여 수없이 구글링하고 질문하다가 지쳤습니다.

04-20 06:53:16.555 1983-2352/? E/TinyUCM: modifier doesn't exists any more
04-20 06:53:20.150 27267-27267/net.kbh.sms_ya E/ViewRootImpl: sendUserActionEvent() mView == null
04-20 06:53:33.035 2411-2411/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:33.035 2411-2411/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:33.045 28449-28449/? E/dalvikvm: >>>>> Normal User
04-20 06:53:33.045 28449-28449/? E/dalvikvm: >>>>> com.sec.android.widgetapp.favoriteswidget [ userId:0 | appId:10064 ]
04-20 06:53:33.125 2411-2913/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:33.130 2411-2913/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:33.140 28465-28465/? E/dalvikvm: >>>>> Normal User
04-20 06:53:33.140 28465-28465/? E/dalvikvm: >>>>> com.sec.spp.push:RemoteDlcProcess [ userId:0 | appId:10097 ]
04-20 06:53:33.185 28465-28477/? E/SPPClientService: ShipBuild Binary : True
04-20 06:53:33.235 19244-19259/? E/SPPClientService: [b] __PingReply__
04-20 06:53:33.970 2411-2535/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:33.970 2411-2535/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.025 28520-28520/? E/dalvikvm: >>>>> Normal User
04-20 06:53:34.025 28520-28520/? E/dalvikvm: >>>>> com.vlingo.midas [ userId:0 | appId:10094 ]
04-20 06:53:34.325 28520-28520/? E/BluetoothHeadset: BTStateChangeCB is registed
04-20 06:53:34.325 28520-28520/? E/BluetoothHeadset: BluetoothHeadset service is binded
04-20 06:53:34.365 2411-2915/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.365 2411-2915/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.375 28539-28539/? E/dalvikvm: >>>>> Normal User
04-20 06:53:34.375 28539-28539/? E/dalvikvm: >>>>> com.samsung.SMT [ userId:0 | appId:1000 ]
04-20 06:53:34.775 28539-28539/? E/Samsung TTS: onIsLanguageAvailable() - lang : kor, country : KOR, variant : , iResult : 1
04-20 06:53:34.775 28539-28539/? E/Samsung TTS: onLoadLanguage() - LANG_COUNTRY_AVAILABLE
04-20 06:53:34.775 28539-28539/? E/Samsung TTS: onLoadLanguage() - lang : kor, country : KOR, variant : x01
                                                
                                                [ 04-20 06:53:34.815 28539:28539 E/         ]
                                                Samsung TTS Engine - initialize() : Samsung TTS Engine (released - 201302151)
                                                
                                                [ 04-20 06:53:34.815 28539:28539 E/         ]
                                                Samsung TTS Engine - initialize() : ro.product.manufacturer - samsung
04-20 06:53:34.880 28539-28550/? E/Samsung TTS: onIsLanguageAvailable() - lang : kor, country : KOR, variant : , iResult : 1
04-20 06:53:34.880 28539-28560/? E/Samsung TTS: onIsLanguageAvailable() - lang : kor, country : KOR, variant : , iResult : 1
04-20 06:53:34.880 28539-28560/? E/Samsung TTS: onLoadLanguage() - LANG_COUNTRY_AVAILABLE
04-20 06:53:34.880 28539-28560/? E/Samsung TTS: onLoadLanguage() - lang : kor, country : KOR, variant : x01
04-20 06:53:34.915 2411-2917/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.915 2411-2917/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.925 28567-28567/? E/dalvikvm: >>>>> Normal User
04-20 06:53:34.925 28567-28567/? E/dalvikvm: >>>>> com.samsung.SMT.lang_en_us_l01 [ userId:0 | appId:10060 ]
04-20 06:53:34.935 2411-2917/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.935 2411-2917/? E/xxxxxxbtsdcard: checkUser: useridlist=null, currentuser=0
04-20 06:53:34.960 28579-28579/? E/dalvikvm: >>>>> Normal User
04-20 06:53:34.960 28579-28579/? E/dalvikvm: >>>>> com.samsung.SMT.lang_ko_kr_x01 [ userId:0 | appId:10099 ]
04-20 06:53:36.180 2411-2740/? E/Watchdog: !@Sync 4516

지금 제가 다시 테스트하여 얻어낸 에러 탭 로그캣은 위와 같습니다.

선생님, 끝까지 도와 주시기 바랍니다.

감사합니다.

추신 : 동영상의 경우만 테스트했습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...