Привет всем, мое приложение создает геозону вокруг определенного местоположения, и как только кто-то входит в забор, оно регистрируется.
У меня есть широта и долгота в MainActivity, но как это сделать? То же самое я получаю в своем классе BroadcastReceiver (GeoFenceTransitionService. java)
. В основной активности я получаю Lat и Long, используя этот код:
@Override
public void onLocationChanged(Location location) {
Log.d(TAG, "onLocationChanged [" + location + "]");
Log.e("Latitude", String.valueOf(location.getLatitude()));
Log.e("Longitude", String.valueOf(location.getLongitude()));
lastLocation = location;
writeActualLocation(location);
}
Принимая во внимание, что в классе GeoFenceTransitionService я использовал этот код:
LocationManager locationManager;
Location location;
@Override
protected void onHandleIntent(Intent intent) {
GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
// Handling errors
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (geofencingEvent.hasError()) {
String errorMsg = getErrorString(geofencingEvent.getErrorCode());
Log.e(TAG, errorMsg);
return;
}
Geocoder geocoder = new Geocoder(getApplicationContext());
try {
List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (addresses.size() > 0) {
Address address = addresses.get(0);
String streetaddress = address.getAddressLine(0);
Log.e("StreetAddress", String.valueOf(streetaddress));
}
} catch (IOException e) {
e.printStackTrace();
}
Как только я вхожу в забор, я получаю ошибку исключения нулевого указателя, как ее исправить?