2016-04-28 15 views
0

Ok, ich habe den folgenden Code und Warnung in AS: enter image description hereAndroid Studio fügt Berechtigungsprüfungsfehler hinzu?

Wenn ich einverstanden solche Überprüfung an, als Insert folgenden Code:

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && 
       ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
      // TODO: Consider calling 
      // ActivityCompat#requestPermissions 
      // here to request the missing permissions, and then overriding 
      // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
      //           int[] grantResults) 
      // to handle the case where the user grants the permission. See the documentation 
      // for ActivityCompat#requestPermissions for more details. 
      return TODO; 
     } 

Und ich frage mich nur, warum UND Operator verwendet?
Wenn Benutzer nur eine der obigen Berechtigungen ablehnt, würde diese Prüfung nicht funktionieren, wie für mich.

Oder ich vermisse etwas?

Antwort

1

Sie können den Standort auf verschiedene Arten erhalten. Abrufen von GPS mit LocationManager.GPS_PROVIDER, von Netzwerk mit LocationManager.NETWORK_PROVIDER und von LocationManager.PASSIVE_PROVIDER (GPS).

permission.ACCESS_FINE_LOCATION wird für GPS_PROVIDER und PASSIVE_PROVIDER benötigt.

benötigt wird, für NETWORK_PROVIDER

Nach doc:

Hinweis: Wenn Sie beide NETWORK_PROVIDER und GPS_PROVIDER verwenden, dann müssen Sie nur die ACCESS_FINE_LOCATION Erlaubnis beantragen, weil es Erlaubnis enthält für beide Anbieter. (Genehmigung ACCESS_COARSE_LOCATION beinhaltet die Erlaubnis nur für NETWORK_PROVIDER.)

So wahrscheinlich Android Studio funktioniert nicht, wenn Sie beide verwenden, so dass es sicher und prüft, spielt für beide

+0

Ok, also Erlaubnis Check von Android Studio hinzugefügt, ist falsch? In einem solchen Fall sollte OR Operator anstelle von AND sein. –

Verwandte Themen