Autore Topic: Location Manager e addProximityAlert()  (Letto 1074 volte)

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Location Manager e addProximityAlert()
« il: 15 Ottobre 2010, 01:48:15 CEST »
0
ciao a tutti, sto lavorando ad un'applicazione che si basa sull'uso del GPS. Utilizzo i seguenti metodi ma ho un po' di difficoltà nel testing, volevo chiedere un po' di chiarezza per sapere se ho capito il funzionamento e progettato la cosa correttamente. Uso queste classi e metodi:
Codice (Java): [Seleziona]
        // Acquire a reference to the system Location Manager
        mLocationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
       
        //Add proximity alerts for every POI, with just created Pending Intents
        mLocationManager.addProximityAlert(mCasa.latitude, mCasa.longitude, 100, -1, mCasa.mmPendingIntent);
Per una migliore comprensione: mCasa è un'istanza di una mini-classe creata da me, un "Point of Interest", fatta così:
Codice (Java): [Seleziona]
        public class Poi implements Serializable{
                public String name;
                public double latitude;
                public double longitude;
                public String uri;
                public Intent mmIntent;
                public PendingIntent mmPendingIntent;
               
                public Poi(String name, double latitude, double longitude, String uri){
                        if(D) Log.d(TAG, "POI class constructor. Instance name: " + name);
                        this.name = name;
                        this.latitude = latitude;
                        this.longitude = longitude;
                        this.uri = uri;
                       
                        //Create Intent and put the whole Poi class in it, so PopUpActivity has info about where we are now.
                        mmIntent = new Intent(getApplicationContext(),PopUpActivity.class);
                        //Put name and uri of this class instance in the Intent, so PopUpActivity can extract info
                        mmIntent.putExtra(getPackageName() + WHERE, name);
                        mmIntent.putExtra(getPackageName() + WHERE, uri);
                        mmPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, mmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
                }
        }

L'intent fa partire un PopUp e gli extra mi servono per contestualizzarlo (vengono estratti dalla PopUpActivity e ti dicono tipo "ciao, sei a casa" se sei vicino al POI "mCasa"...).
Volevo sapere se il tutto ha senso, funziona ecc, e soprattutto una cosa: inizialmente mi ero messo a smanettare pesante con LocationManager, LocationListener ecc, scoprendo solo in un secondo momento che il metodo addProximityAlert() fa già al caso mio!
Ma a questo punto mi chiedo: non serve avere un LocationListener per triggerare addProximityAlert, viene gestito tutto in automatico da LocationManager, giusto?

grazie mille dell'attenzione! saluti a tutti

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Re:Location Manager e addProximityAlert()
« Risposta #1 il: 21 Ottobre 2010, 02:15:58 CEST »
0
timido up O:-) ho pensato ci potesse essere un problema con il
Codice (Java): [Seleziona]
getApplicationContext() all'interno di una classe dentro un'Activity e perciò ho cambiato il costruttore passandogli direttamente il
Codice (Java): [Seleziona]
Context in fase di creazione, ma continua a non triggerare mai il metodo
Codice (Java): [Seleziona]
addProximityAlert()
qualcuno ha consigli da darmi? è la parte fondamentale della mia applicazione, ma non funziona! Risolto questo ho solo da curare grafica e finezze varie...please!!! :-[

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
Re:Location Manager e addProximityAlert()
« Risposta #2 il: 23 Ottobre 2010, 01:26:40 CEST »
+1
mi ri-rispondo per chiudere tutto e far sapere a chi interessa che, a quanto pare, dopo mediamente-approfondite ricerche in Google su forums ecc. addProximityAlert() non triggera MAI. Sembra essere un bug risaputo anche da un po' di tempo (ho letto post del 2008) a cui non è ancora stata trovata soluzione (forse). Su questo punto non sono del tutto certo, ma tra cercare nel vasto e caotico mondo di Internet una soluzione e implementare ciò che mi serve da solo...preferisco la seconda!

Buonanotte a tutti!  :-)

Offline nowire75

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows XP, Linux
Re:Location Manager e addProximityAlert()
« Risposta #3 il: 28 Ottobre 2011, 10:36:33 CEST »
0
Ciao,

io avrei la necessità di usare addProximityAlert(). Sai se il bug è stato risolto sulle nuove versioni di android?

Grazie