1

ich über die Laufzeit-Berechtigungen zu lernen, bin ab. Ich habe eine Karte und ich habe eine Genehmigung erteilt. Wenn der Benutzer den genauen Standort erlaubt - zoomt die Karte auf seinen aktuellen Standort und wenn er dies nicht zulässt, bleibt die Karte an diesem Ort. Was ich anstelle der Karte an diesem Ort machen möchte, ist: Wenn der Benutzer keine Erlaubnis zum Zugriff auf seinen Standort zulässt, sollte die Karte auf meinen benutzerdefinierten Standort zoomen. (Greenwich).Hinzufügen von Standard-Speicherort, wenn Benutzer nicht über die Berechtigung für eine gute Lage für eine Karte in Android erlaubt es

Meine Karten Fragment:

 mapView.getMapAsync(new OnMapReadyCallback() { 
     @Override 
     public void onMapReady(GoogleMap googleMap) { 
      mMap = googleMap; 

      if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && 
        ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
       if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) { 

       } else { 
        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_LOCATION_REQUEST_CODE); 
       } 
       return; 
      } 

      mMap.setMyLocationEnabled(true); 
      LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); 
      Criteria criteria = new Criteria(); 

//    if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) 
//      == PackageManager.PERMISSION_GRANTED) { 
//     mMap.setMyLocationEnabled(true); 
//    } else { 
//     // Show rationale and request permission. 
//    } 

      //Disable Map Toolbar: 
      mMap.getUiSettings().setMapToolbarEnabled(false); 

      // Get the name of the best provider and current location 
      String provider = null; 
      if (locationManager != null) { 
       provider = locationManager.getBestProvider(criteria, true); 
      } 
      // Get current location 
      Location myLocation = null; 
      if (locationManager != null) { 
       myLocation = locationManager.getLastKnownLocation(provider); 
      } 

      // Set default latitude and longitude to Greenwich 
      double latitude = 51.4825766; 
      double longitude = -0.0076589; 

      // Get latitude and longitude of the current location and a LatLng object 
      if (myLocation != null) { 
       latitude = myLocation.getLatitude(); 
       longitude = myLocation.getLongitude(); 
      } 

      CameraPosition cameraPosition = new CameraPosition.Builder() 
        .target(new LatLng(latitude, longitude)).zoom(14).build(); 
      mMap.animateCamera(CameraUpdateFactory 
        .newCameraPosition(cameraPosition)); 

} 

Antwort

0

kann nicht finden Lösung, so habe ich die Erlaubnis innerhalb der übergeordneten Aktivität. Ich denke, es ist ein bekannter Fehler.

0

Sie können mit diesem Code manuell Standort vergrößern:

CameraUpdate center=CameraUpdateFactory.newLatLng(new LatLng(latitude, 
longitude)); 

CameraUpdate zoom=CameraUpdateFactory.zoomTo(15); 

map.moveCamera(center); 
map.animateCamera(zoom); 
+0

wo soll ich in diesen Code setzen? – Kemo

+0

nach Ihrer letzten IF-Bedingung –

+0

Ich habe meinen Code aktualisiert, dieser existiert bereits in meinem Code. Was ich möchte ist, wenn Benutzer klickt keine Erlaubnis erlauben, sollte es an den benutzerdefinierten Speicherort gehen. – Kemo

Verwandte Themen