BroadcastReceiver'ın metin, telefon olayları vb. Izlediğini biliyorum, ancak LocationServices'ı Konum tabanlı hizmet ve olay olarak çalıştırabilir misiniz? Örneğin, belirli bir GPS noktasına yakınsınız ve telefon sizi uyarır.BroadcastReceiver konum için
cevap
Bence aradığınız şey bunun gibi bir şey. Bir parametre olarak PendingIntent
alır ve bu amaç bir BroadcastReceiver
'u tetiklemek için kullanılabilir LocationManager.requestLocationUpdates()
bir sürümü vardır. Bu kod, yer güncellemeleriyle birlikte ateş etmek için özel bir yayın kaydeder.
Intent intent = new Intent("UNIQUE_BROADCAST_ACTION_STRING_HERE");
LocationManager manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
long minTime; //This should probably be fairly long
float minDistance; //This should probably be fairly big
String provider; //GPS_PROVIDER or NETWORK_PROVIDER
PendingIntent launchIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
manager.requestLocationUpdates(provider, minTime, minDistance, launchIntent);
Sonra sadece aynı Niyet eylem ile BroadcastReceiver
kayıt var ve bu işlem için konum güncellemeleri alacaktır. Ve elbette, PendingIntent
'u bir noktada saklayın, çünkü bir noktada manager.removeUpdates(launchIntent)
'u aramanız gerekecek!
Son Not: Eğer uygulama ön planda değilken düzenli konum güncellemelerini uygulamak için çalışıyoruz gibi geliyor çünkü
, bu akılda tutmak. Uygulamanızı bir pil katil olarak işaretlemediğiniz sürece, bu işlevi nasıl uyguladığınıza çok dikkat edin.
Konum hizmetinin dinlenmesini sağlamak için, sık konum güncellemelerini büyük bir minTime veya minDistance parametresiyle büyük ölçüde azaltmak isteyeceksiniz. Bu özellik, kullanıcı kontrollü bir tercihe eklenmelidir. Böylece, uygulamanızı arka planda izleme konumlarından etkinleştirebilir/devre dışı bırakabilirler.
Bu yardımcı olur umarım!
gitmek Kablosuz-Tasarımlar @, bir mücevher gibidir: Sen aşağıda daha ayrıntılı olarak öğrenebilirsiniz Durumun böyle olduğunu düşündüm, hala Droid için INTENT'i öğreniyorum, yanıt çok bilgilendirici - zaman ayırdığınız için teşekkürler efendim! – ProNeticas
Sorun değil. Eğer bu cevap probleminizi çözüyorsa, kabul etmekte özgürsünüz. Şerefe! – Devunwired
Ben ilk önce test etmek istedim;) – ProNeticas
Bu soru 2 yaşından daha büyük ama şimdi bunu yapmak için çok kolay ve pil verimli bir yol var. Konsept Geofences olarak adlandırılır. Burada
http://developer.android.com/training/location/geofencing.html
sen http://developer.android.com/reference/android/location/LocationListener.html – schwiz