2017-08-31 1 views
0

Ich frage nach ACCESS_COARSE_LOCATION Erlaubnis, aber kein Dialogfeld wird angezeigt.Anfrage-Permission-Dialog wird nicht angezeigt, wenn um Erlaubnis zu erteilen

Hier ist mein Code:

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

hier 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); 
     } 
    } 

Ich erhalte 08-31 13:02:25.067 8231-8231/com.appName.app/com.appName.app.MainActivity: Requesting permission ausgedruckt, aber kein Dialog um Erlaubnis zu fragen zeigt nach oben.

Warum passiert das?

Antwort

0

Sorry für die dummen Fehler behandeln.

Ich erkannte das Problem. Ich habe vergessen, <uses-permission> Tag in AndroidManifest.xml hinzuzufügen.

Hinzufügen:

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

in AndroidManifest.xml unter <manifest> Tag hat seinen Zweck erfüllt.

0

versuchen diese

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); 

     } 

jetzt permisiion Ergebnis

@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(); 
     } 
    } 

} 

nicht vergessen hinzuzufügen, diese Erlaubnis in Manifest-Datei

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