From 9e96317a0d905734d8c96be1e08157ccf701661e Mon Sep 17 00:00:00 2001 From: Prabhakara Rao Pediredla Date: Mon, 14 Mar 2016 15:21:08 +0530 Subject: PhoneApp Crash: Multiple times due to permission issue Phone App crashes while monkey is running with no read contacts permission. Handled run time check before making a contacts db query. It will avoid exceptions. Change-Id: I855d5358fcff06a245a0ec2734efa32e37b4daf0 --- src/com/android/phone/CallerInfoCache.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/android/phone/CallerInfoCache.java b/src/com/android/phone/CallerInfoCache.java index 644aa2222..83db85749 100644 --- a/src/com/android/phone/CallerInfoCache.java +++ b/src/com/android/phone/CallerInfoCache.java @@ -20,6 +20,7 @@ import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.database.Cursor; import android.os.AsyncTask; import android.os.PowerManager; @@ -30,6 +31,7 @@ import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Data; import android.telephony.PhoneNumberUtils; import android.util.Log; +import android.Manifest.permission; import java.util.HashMap; import java.util.Map.Entry; @@ -184,6 +186,10 @@ public class CallerInfoCache { // it keeps older one as much as it can, and replaces it with newer one inside a very small // synchronized block. + if (!(mContext != null && (mContext.checkSelfPermission(permission.READ_CONTACTS) + == PackageManager.PERMISSION_GRANTED))) { + return; // If there is no contacts permission, don't query. + } Cursor cursor = null; try { cursor = mContext.getContentResolver().query(Callable.CONTENT_URI, -- cgit v1.2.3