title: Exception in Runtime Permissions
body: <p>Method written for asking permissions. I am asking multiple permissions.</p>
  
  <pre><code>private void askForPermissions() {
          if (Build.VERSION.SDK_INT &gt;= 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 &gt;= 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 &gt;= Build.VERSION_CODES.M &amp;&amp; contactsPermission != PackageManager.PERMISSION_GRANTED &amp;&amp; extStoragePermission != PackageManager.PERMISSION_GRANTED &amp;&amp; cameraPermission != PackageManager.PERMISSION_GRANTED &amp;&amp; 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);
          }
      }
  </code></pre>
  
  <p>Logs:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Inspite of the fact that i added askForPermission in the beginning it is reading contacts and throwing up this permission denial error... without contacts read line the app is asking for permission properly and working fine.
  What can be done?</p>