В чем ваша проблема?Я сделал это в одном из моих последних проектов.Вы должны использовать GPS-приемник в вашем сервисе.Я рекомендую трансляцию для связи между вашим сервисом и вашей деятельностью.Если вы хотите сигнал тревоги, если ваша активность находится в поле зрения, вы должны включить ее в эту деятельность.В противном случае вам нужно создать pendingIntent в вашем сервисе и запустить уведомление, если его время для.
возможно onCreate в вашем сервисе:
@Override
public void onCreate() {
myNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
myServiceBroadcastReceiver = new MyServiceBroadcastReceiver();
MyApplication.getAppContext().registerReceiver(myServiceBroadcastReceiver, new IntentFilter(MyApplication.APP_UPDATE_DEMAND));
myNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
myLocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
myLocListener = new MyLocListener();
myLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MyApplication.GPS_UPDATE_PERIOD, 0, myLocListener);
myLocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MyApplication.NETWORK_UPDATE_PERIOD, 0, myLocListener); // comment this line out if you want only gps!
}
Ваш пример класса LocationListener
private class MyLocListener implements LocationListener {
public void onLocationChanged(Location location) {
String lat = Double.toString(location.getLatitude());
String lng = Double.toString(location.getLongitude();
//evaluate lat and lng here, fire a notification or send a broadcast if the activity is in view.
}
}
public void onProviderDisabled(String provider) {
// Do something
}
public void onProviderEnabled(String provider) {
// Do something
}
public void onStatusChanged(String provider, int status,
Bundle extras) {
// Do something
}
}
Если вы хотите оценить широту и долготу в сервисе (активность не отображается), вы можете сделать это в onLocationChanged (), если вы хотите оценить данные GPS в своей активности (в поле зрения), вы можете отправить широковещательную рассылку наваша деятельность.Существуют и другие возможности для передачи данных в мероприятии, но для меня решение с трансляцией было лучшим вариантом (пришлось также отправлять другую информацию).