// on verifie si on a la permission
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) 
{
 
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.READ_CONTACTS)) 
		{
           //Cela signifie que la permission à déjà était 
           //demandé et l'utilisateur l'a refusé
           //Vous pouvez aussi expliquer à l'utilisateur pourquoi
           //cette permission est nécessaire et la redemander
        } else {
            //Sinon demander la permission
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS},
                    MY_PERMISSIONS_REQUEST_READ_CONTACTS);
        }
    }
	
	
	// aprés avoir demander la permission on peux vérifier l'état actuel de nos droits
@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], 
                                       int[] grantResults) {
    switch (requestCode) 
	{
        case MY_PERMISSIONS_REQUEST_READ_CONTACTS: 
		{
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) 
			{
                // La permission est garantie
            } 
			else 
			{
                // La permission est refusée
            }
            return;
        }
    }
}