2020年12月21日星期一

Android getSystemServices is undefined in Fragment?

I'm trying to use geolocation in fragments and getting error while initialization (LocationManager)getSystemService(LOCATION_SERVICE).

@Override  public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {      super.onViewCreated(view, savedInstanceState);      SupportMapFragment mapFragment =              (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);      if (mapFragment != null) {          mapFragment.getMapAsync(callback);            location = (LocationManager)getSystemService(LOCATION_SERVICE);            if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {              requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 12);              return;          }            location.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {              @Override              public void onLocationChanged(@NonNull Location location) {                      String title = "";                  double lat = location.getLatitude();                  double longitude = location.getLongitude();                    try {                      Geocoder geo = new Geocoder(getActivity());                      List<Address> address = geo.getFromLocation(lat, longitude, 1);                      title = address.get(0).getCountryName() + " , " + address.get(0).getLocality();                      } catch (IOException e) {                      e.printStackTrace();                  }                      LatLng mylocaion = new LatLng(lat, longitude);                  mMap.addMarker(new MarkerOptions().position(mylocaion).title(title));                  mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mylocaion, 10.2f));                  }          });              location.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {              @Override              public void onLocationChanged(@NonNull Location location) {                      String title = "";                  double lat = location.getLatitude();                  double longitude = location.getLongitude();                      try {                      Geocoder geo = new Geocoder(getActivity());                      List<Address> address = geo.getFromLocation(lat, longitude, 1);  // I'm trying to use geolocation in fragments and getting error while initialization  (LocationManager)getSystemService(LOCATION_SERVICE).                       title = address.get(0).getCountryName() + " , " + address.get(0).getLocality();                        } catch (IOException e) {                      e.printStackTrace();                  }                      LatLng mylocaion = new LatLng(lat, longitude);                  mMap.addMarker(new MarkerOptions().position(mylocaion).title(title));                  mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mylocaion, 10.2f));                  }          });        }  }  

enter image description here

https://stackoverflow.com/questions/65395251/android-getsystemservices-is-undefined-in-fragment December 21, 2020 at 11:12PM

没有评论:

发表评论