title: OnRequestPermissionsResult is not being called if user Deny the permission
body: <p>I am working in xamarin forms. I need to ask some permissions like for camera and location when user install the app. If user "Accept" the permission then the method OnRequestPermissionsResult execute successfully. But if user Deny the permission OnRequestPermissionsResult never called and app gets close. 
  Please update why app gets close when user Deny the permission?</p>
  
  <pre><code>    public void RequestCameraPermission()
      {
          try
          {
              if (ActivityCompat.ShouldShowRequestPermissionRationale(this, Manifest.Permission.Camera))
              {
                  // Provide an additional rationale to the user if the permission was not granted and the user would benefit from additional context for the use of the permission. For example if the user has previously denied the permission.
  
                  Snackbar.Make(layout, Resource.String.permission_camera_rationale,
                      Snackbar.LengthIndefinite).SetAction(/*Resource.String.ok*/"OK", new Action&lt;Android.Views.View&gt;(delegate (Android.Views.View obj)
                      {
                          ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.Camera }, REQUEST_CAMERA);
                      })).Show();
              }
              else
              {
                  // Camera permission has not been granted yet. Request it directly.
  
                  ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.Camera }, REQUEST_CAMERA);
              }
          }
          catch(Exception ex)
          {
  
          }
      }
  
    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
      {
          bool cameraPerGranted = false;
          bool micPerGranted = false;
          bool locationPerGranted = false;
  
          if (requestCode == REQUEST_CAMERA)
          {
              // Received permission result for camera permission.
              // Check if the only required permission has been granted
              if (grantResults.Length == 1 &amp;&amp; grantResults[0] == Permission.Granted)
              {
                  cameraPerGranted = true;
                  GlobalClass.isCameraEnabled = cameraPerGranted;
              }
              else
              {
                  GlobalClass.isCameraEnabled = false;
              }
          }
          else if (requestCode == REQUEST_MIC)
          {
              // Received permission result for microphone permission.
  
              // Check if the only required permission has been granted
              if (grantResults.Length == 1 &amp;&amp; grantResults[0] == Permission.Granted)
              {
                  micPerGranted = true;
                  GlobalClass.isMicrophoneEnabled = micPerGranted;
              }
              else
              {
                  GlobalClass.isMicrophoneEnabled = false;
              }
          }
          else if (requestCode == REQUEST_LOCATION)
          {
              // Received permission result for microphone permission.
  
              // Check if the only required permission has been granted
              if (grantResults.Length &gt; 0 &amp;&amp; grantResults[0] == Permission.Granted &amp;&amp; grantResults[1] == Permission.Granted)
              {
                  locationPerGranted = true;
                  GlobalClass.isLocationEnabled = locationPerGranted;
              }
              else
              {
                  GlobalClass.isLocationEnabled = false;
              }
          }
          else
          {
              base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
          }
      }
  </code></pre>
  
  <p>Regards,
  Anand Dubey</p>