|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2007
Messaggi: 182
|
[Android] addProximityAlert non funziona
Ho trovato centinaia di topic con persone che hanno il mio stesso problema. C'è qualcuno che dice di essere riuscito a risolvere, ma non capisco come dato che non mi sembra facciano nulla di verso da quello che faccio io.
Questo è un servizio che monitora la posizione e aggiunge un proximityAlert Codice:
public class GeoReminderService extends Service implements LocationListener{ private LocationManager locationManager; private final String proximityIntentAction = "com.example.geo.ProximityIntentReceiver"; private float latitude; private float longitude; @Override public int onStartCommand(Intent intent, int flags, int startId) { locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 400, 10, this); addProximityAlert(45.477872,9.23457); return Service.START_STICKY; } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onLocationChanged(Location location) { Log.v("Service","Location changed"); if (location != null) { Log.v("Location changed : Lat: ", ""+location.getLatitude()); Log.v("Location changed : Lon: ", ""+location.getLongitude()); } } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } private void addProximityAlert(double latitude, double longitude) { Log.v("Service","proximity alert added" + latitude +" "+ longitude); Intent intent = new Intent(proximityIntentAction); PendingIntent proximityIntent = PendingIntent.getBroadcast(getApplicationContext(), -1, intent, PendingIntent.FLAG_UPDATE_CURRENT); locationManager.addProximityAlert(latitude, longitude, 3000, -1, proximityIntent); IntentFilter filter = new IntentFilter(proximityIntentAction); registerReceiver(new ProximityIntentReceiver(), filter); } } Codice:
public class ProximityIntentReceiver extends BroadcastReceiver { private static final int NOTIFICATION_ID = 1000; @Override public void onReceive(Context context, Intent intent) { Log.v("proximity receiver", "alert received"); String key = LocationManager.KEY_PROXIMITY_ENTERING; Boolean entering = intent.getBooleanExtra(key, false); if (entering) { Log.v("ProximityIntentReceiver", "entering"); } else { Log.v("ProximityIntentReceiver", "exiting"); } } } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:36.