Exception lors de l'Exécution des Autorisations

Méthode écrit pour demander des autorisations. Je me suis même demandé plusieurs autorisations.

private void askForPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int contactsPermission = checkSelfPermission(Manifest.permission.READ_CONTACTS);
int extStoragePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
int cameraPermission = checkSelfPermission(Manifest.permission.CAMERA);
int recordPermission = checkSelfPermission(Manifest.permission.RECORD_AUDIO);
int internetPermission = checkSelfPermission(Manifest.permission.INTERNET);
Log.e("Start_Permission1",""+(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M));
Log.e("Start_Permission2",""+(contactsPermission != PackageManager.PERMISSION_GRANTED));
Log.e("Start_Permission3",""+(extStoragePermission != PackageManager.PERMISSION_GRANTED));
Log.e("Start_Permission4",""+(cameraPermission != PackageManager.PERMISSION_GRANTED));
Log.e("Start_Permission5",""+(recordPermission != PackageManager.PERMISSION_GRANTED));
Log.e("Start_Permission6",""+(internetPermission != PackageManager.PERMISSION_GRANTED));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && contactsPermission != PackageManager.PERMISSION_GRANTED && extStoragePermission != PackageManager.PERMISSION_GRANTED && cameraPermission != PackageManager.PERMISSION_GRANTED && recordPermission != PackageManager.PERMISSION_GRANTED) {
Log.e("Start","here i am");
requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_CONTACTS}, REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
Log.e("Start_permission","Asking done..");
}
In onCreate method:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
//First take all permissions
askForPermissions();
if (!checkNetworkAvailability()) {
Toast.makeText(getApplicationContext(), "Sorry! You need Internet Connection", Toast.LENGTH_LONG).show();
spinner.setVisibility(View.INVISIBLE);
} else {
if (populateUserData()) {
spinner = (ProgressBar) findViewById(R.id.spinner);
spinner.setVisibility(ProgressBar.VISIBLE);
Log.e("Start_populateUSrData", "User data populated");
fetchContacts();
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//Permission Granted
//insertDummyContact();
} else {
//Permission Denied
Toast.makeText(Start.this, "WRITE_CONTACTS Denied", Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}

Journaux:

12-24 16:53:26.251 1465-1465/com.moodoff E/Minikin: addFont failed to create font /system/fonts/NanumGothic.ttf
12-24 16:53:26.252 1465-1465/com.moodoff E/Minikin: addFont failed to create font /system/fonts/DroidSansFallback.ttf
12-24 16:53:26.252 1465-1465/com.moodoff E/Minikin: addFont failed to create font /system/fonts/MTLmr3m.ttf
12-24 16:53:26.434 1465-1465/com.moodoff E/MultiWindowProxy: getServiceInstance failed!
12-24 16:53:26.595 1465-1465/com.moodoff E/Start_Permission1: true
12-24 16:53:26.595 1465-1465/com.moodoff E/Start_Permission2: true
12-24 16:53:26.595 1465-1465/com.moodoff E/Start_Permission3: true
12-24 16:53:26.595 1465-1465/com.moodoff E/Start_Permission4: true
12-24 16:53:26.595 1465-1465/com.moodoff E/Start_Permission5: true
12-24 16:53:26.596 1465-1465/com.moodoff E/Start_Permission6: false
12-24 16:53:26.596 1465-1465/com.moodoff E/Start: here i am
12-24 16:53:26.618 1465-1465/com.moodoff E/Start_permission: Asking done..
12-24 16:53:26.876 1465-1572/com.moodoff E/AndroidRuntime: FATAL EXCEPTION: Thread-1132
Process: com.moodoff, PID: 1465
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{292d428 1465:com.moodoff/u0a207} (pid=1465, uid=10207) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
at android.os.Parcel.readException(Parcel.java:1599)
at android.os.Parcel.readException(Parcel.java:1552)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3847)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5062)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2026)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1517)
at android.content.ContentResolver.query(ContentResolver.java:482)
at android.content.ContentResolver.query(ContentResolver.java:441)
at com.moodoff.ContactList.getContactNames(ContactList.java:135)
at com.moodoff.helper.DBHelper$1.run(DBHelper.java:73)
at java.lang.Thread.run(Thread.java:818)

En dépit du fait que j'ai ajouté askForPermission au début, c'est la lecture de contacts et de vomir cette autorisation refus d'erreur... sans contacts lire en ligne l'application soit demander la permission correctement et fonctionne bien.
Ce qui peut être fait?

InformationsquelleAutor Santanu | 2016-12-24