안드로이드 개발 질문/답변
(글 수 45,052)
SDK 2.1 버전으로 Database 관련하여 이것 저것 만들어보고 있는 중입니다.
이곳에서 많은 도움을 받고 있어서
Contact, SMS/MMS 등의 database의 내용을 Content Provider를 통해서 얻어와서 표시하는 App을 작성중에 있습니다.
위의 두가지는 잘 동작이 되는데
Email쪽은 연결이 잘 되질 않습니다.
위와 같은 간략한 코드로 query()를 수행하여 값을 가져와서 ListAapter에 표시하도록 연결중에 있습니다.
(위와 같은 방식으로 Contact, SMS쪽과 연결은 성공한 상태입니다.)
바뀐 것은 uri와 CursorAdapter와 연결할 때 사용할 email_from 의 값 정도 입니다.
Manifest 파일에는
와 같은 권한을 추가해주었습니다.
(permission 부분은 Fullsourcecode\packages\apps\Email\src\com\android\email 의 위치에서 찾아서 사용하게 되었습니다.)
이렇게 작성하고 실행을 시키면 Email 관련된 동작부분에서는
라는 에러문이 나타납니다.
Manifest.xml 파일에 user-permission으로 등록을 했는데 위와 같은 에러문이 나타나는 상황입니다.
1. 권한 관련하여 잘못 작성한 것이 있는지요?
2. 구글링을 통해서 Email Database는 다른 App.에서 사용할 수 없다고 하는데, 정말 없는 것인지 알고 싶습니다.
어떠한 방법이라도 좋습니다. Email database에 access를 해서 데이터만 가지고 올 수 있으면...
수고하세요.
끝.
이곳에서 많은 도움을 받고 있어서
Contact, SMS/MMS 등의 database의 내용을 Content Provider를 통해서 얻어와서 표시하는 App을 작성중에 있습니다.
위의 두가지는 잘 동작이 되는데
Email쪽은 연결이 잘 되질 않습니다.
String email_uri = "content://com.android.email.provider/message"; String[] email_from = new String[]{"displayName", "subject", "timeStamp"}; Cursor cursor = getContentResolver().query(Uri.parse(email_uri), null, null, null, null);
위와 같은 간략한 코드로 query()를 수행하여 값을 가져와서 ListAapter에 표시하도록 연결중에 있습니다.
(위와 같은 방식으로 Contact, SMS쪽과 연결은 성공한 상태입니다.)
바뀐 것은 uri와 CursorAdapter와 연결할 때 사용할 email_from 의 값 정도 입니다.
Manifest 파일에는
<uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/>
와 같은 권한을 추가해주었습니다.
(permission 부분은 Fullsourcecode\packages\apps\Email\src\com\android\email 의 위치에서 찾아서 사용하게 되었습니다.)
이렇게 작성하고 실행을 시키면 Email 관련된 동작부분에서는
Caused by: java.lang.SecurityException: Permission Denial : reading com.android.email.provider.EmailProvider uri content://com.android.email.provider/message/ from pid=2529, uid=10025 requires com.android.email.permission.ACCESS_PROVIDER
라는 에러문이 나타납니다.
Manifest.xml 파일에 user-permission으로 등록을 했는데 위와 같은 에러문이 나타나는 상황입니다.
1. 권한 관련하여 잘못 작성한 것이 있는지요?
2. 구글링을 통해서 Email Database는 다른 App.에서 사용할 수 없다고 하는데, 정말 없는 것인지 알고 싶습니다.
어떠한 방법이라도 좋습니다. Email database에 access를 해서 데이터만 가지고 올 수 있으면...
수고하세요.
끝.
2010.01.24 22:37:10
<permission android:name="com.android.email.permission.ACCESS_PROVIDER"
android:protectionLevel="signatureOrSystem"
android:label="@string/permission_access_provider_label"
android:description="@string/permission_access_provider_desc"/>
해당 퍼미션의 프로텍션 레벨이 signatureOrSystem으로 되어있어 외부 앱에서 접근할 수 없는듯 하군요.
프로텍션 레벨의 자세한 설명은 레퍼런스 문서 참고하세요.
http://d.android.com/guide/topics/manifest/permission-element.html#plevel
2010.01.25 10:37:08
회색님, 알려주신 레퍼런스 사이트를 참고하니 아래와 같이 설명이 되어 있던데요,
A permission that the system grants only to applications that are in the Android system image or that are signed with the same certificates as those in the system image.
즉 외부 앱으로는 access가 불가능하지만, system image에 app을 포함시키면 access가 가능하다고 적혀있네요.
이말은 폰 이미지에 지금 작성중인 app을 포함시켜서 이미지를 배포하면 access가 가능하다고 볼 수 있는건가요?
A permission that the system grants only to applications that are in the Android system image or that are signed with the same certificates as those in the system image.
즉 외부 앱으로는 access가 불가능하지만, system image에 app을 포함시키면 access가 가능하다고 적혀있네요.
이말은 폰 이미지에 지금 작성중인 app을 포함시켜서 이미지를 배포하면 access가 가능하다고 볼 수 있는건가요?
2010.01.25 09:15:04
1.5 버전에서는 테스트 해봤었는데, 꼼수?를 부리면 gmail에 저장된 이메일 제목, 내용등을 가져올 수 있습니다.
아직 정식으로 지원하지 않는 것을 지금 당장 해야할 까요?
아직 정식으로 지원하지 않는 것을 지금 당장 해야할 까요?