Какой лучший способ управлять разрешениями на местоположение с помощью mapbox android с java?

#java #location #android-permissions #mapbox-android

#Ява #Расположение #android-разрешения #картографический ящик-android

Вопрос:

Я нашел этот способ управления разрешением на местоположение в java с помощью mapbox, но он не работает. Это мой код:

 private void enableLocationComponent(@NonNull Style loadedMapStyle) {  if (PermissionsManager.areLocationPermissionsGranted(this)) {   LocationComponentOptions customLocationComponentOptions = LocationComponentOptions.builder(this)  .pulseEnabled(true)  .build();   LocationComponent locationComponent = mapboxMap.getLocationComponent();   locationComponent.activateLocationComponent(  LocationComponentActivationOptions.builder(this, loadedMapStyle)  .locationComponentOptions(customLocationComponentOptions)  .build());   locationComponent.setLocationComponentEnabled(true);   locationComponent.setCameraMode(CameraMode.TRACKING);   locationComponent.setRenderMode(RenderMode.NORMAL);  } else {  Toast.makeText((Context)this, "GPS NON ATTIVO", Toast.LENGTH_LONG).show();  Log.d("gps","GPS NON ATTIVO");  permissionsManager = new PermissionsManager(this);  permissionsManager.requestLocationPermissions(this);   } }  @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {  super.onRequestPermissionsResult(requestCode, permissions, grantResults); }  @Override public void onExplanationNeeded(Listlt;Stringgt; permissionsToExplain) {  Toast.makeText(this, R.string.user_location_permission_explanation, Toast.LENGTH_LONG).show(); }  @Override public void onPermissionResult(boolean granted) {  if (granted) {  mapboxMap.getStyle(new Style.OnStyleLoaded() {  @Override  public void onStyleLoaded(@NonNull Style style) {  enableLocationComponent(style);  }  });  } else {  Toast.makeText(this, R.string.user_location_permission_not_granted, Toast.LENGTH_LONG).show();  finish();  } }  

Я добавляю компонент местоположения на карту здесь:

 @Override  public void onStyleLoaded(@NonNull Style style) {  giveStyle(style,symbolLayerIconFeatureList);  enableLocationComponent(style);  }  

И onStyleLoaded находится внутри метода onMapReady()

Какой хороший способ управлять этими разрешениями?