2017-08-31 4 views
0

Je demande la permission ACCESS_COARSE_LOCATION mais aucune boîte de dialogue n'apparaît.La boîte de dialogue requestpermission n'apparaît pas lorsque vous demandez l'autorisation

Voici mon code:

if (!checkPermissions()) { 
    requestPermissions(); 
} else { 
    getLastLocation(); 
} 

est ici requestPermission():

private void requestPermissions() { 
     boolean shouldProvideRationale = 
       ActivityCompat.shouldShowRequestPermissionRationale(this, 
         Manifest.permission.ACCESS_COARSE_LOCATION); 

     // Provide an additional rationale to the user. This would happen if the user denied the 
     // request previously, but didn't check the "Don't ask again" checkbox. 
     if (shouldProvideRationale) { 
      Log.i(TAG, "Displaying permission rationale to provide additional context."); 

      AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this); 
      builder1.setMessage("Location permission is needed in order to show your current location"); 
      builder1.setCancelable(true); 

      builder1.setPositiveButton(
        "OK", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, 
            PERMISSION_REQUEST_RECORD_AUDIO); 
         } 
        }); 

      AlertDialog alert11 = builder1.create(); 
      alert11.show(); 

     } else { 
      Log.i(TAG, "Requesting permission"); 
      // Request permission. It's possible this can be auto answered if device policy 
      // sets the permission in a given state or the user denied the permission 
      // previously and checked "Never ask again". 
      ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 
        REQUEST_PERMISSIONS_REQUEST_CODE); 
     } 
    } 

Je reçois 08-31 13:02:25.067 8231-8231/com.appName.app/com.appName.app.MainActivity: Requesting permission imprimé mais pas de dialogue pour demander la permission est présenter.

Pourquoi cela se produit-il?

Répondre

0

Désolé pour l'erreur stupide.

J'ai compris le problème. J'ai oublié d'ajouter <uses-permission> dans AndroidManifest.xml.

Ajout:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 

dans AndroidManifest.xml sous étiquette <manifest> a fait le travail.

0

essayer cette

String permission = android.Manifest.permission.ACCESS_FINE_LOCATION; 
     if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission) 
       != PackageManager.PERMISSION_GRANTED && ActivityCompat. 
       checkSelfPermission(SearchCityClass.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) 
       != PackageManager.PERMISSION_GRANTED) { 
      ActivityCompat.requestPermissions(SearchCityClass.this, new String[] 
        {permission}, 123); 

     } 

maintenant poignée permisiion résultat

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, 
             @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if (requestCode == PERMISSION_GPS_CODE) { 
     if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 


      Toast.makeText(this, "location_permission_granted ", Toast.LENGTH_SHORT).show(); 

     } else { 

      Toast.makeText(this, "location_permission_not_granted ", Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

ne pas oublier d'ajouter cette autorisation dans le fichier manifeste

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>