보기를 누르면 해당 연락처의 정보를 열어 연락처의 그림과 이름으로 GridView를 표시하는 연락처 위젯을 만들려고하지만 표시 할 때 권한이 거부됩니다. 위젯의 그림.위젯에서 권한 거부
먼저 GridView를 표시하고 연락처를 쿼리하는 응용 프로그램을 만들었습니다. 나는 앱에 대한 올바른 권한 (android.permission.READ_CONTACTS)을 포함시켜야한다는 것을 의미하기 때문에 이것을 언급한다. 그것이 작동하고 나면 같은 일을 한 위젯을 만들려고했습니다. 모든 때문에 다음과 같은 예외 작동하지 않은 사진이 연락처의 사진 표시를 제외하고 그 근무 :
07-05 22:43:16.934: E/DatabaseUtils(17897): java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts/165/photo from pid=710, uid=10065 requires android.permission.READ_CONTACTS
대응하는 응용 프로그램이 com.teslacoilsw.launcher되었다 (? 노바) 반대로 내 패키지 이름. 하지만 난 혼란스러워 : 애플 리케이션은 모든 것을 잘 읽고 사진을 표시했습니다. 위젯은 연락처의 표시 이름과 조회 URI를 잘 읽었지만 그림을 읽을 때 이러한 예외가 발생합니다. 위젯에 추가 사용 권한을 추가 할 방법이 있습니까? 여기
내가 리모트 뷰를 생성하고 정보RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.contact_widget_row);
contactCursor.moveToPosition(position);
String contactName = contactCursor.getString(
contactCursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY));
rv.setTextViewText(R.id.text1, contactName);
String uriString = contactCursor.getString(
contactCursor.getColumnIndexOrThrow(ContactsContract.Contacts.PHOTO_URI));
if(uriString != null)
{
rv.setImageViewUri(R.id.image1, Uri.parse(uriString));
}
else
{
rv.setImageViewResource(R.id.image1, R.drawable.ic_contacts_holo_dark);
}
FWIW URI를 잘 표시 널 (null)에 대한 이미지를 추가하는 코드입니다 만, 그 접점에서 URI를 표시 할 필요가 없습니다.
내 위젯에 연락처 사진을 표시하려면 권한을 어떻게 설정해야합니까?