Italian Qualcuno ha mai provato GEOFENCE?

Discussion in 'Italian Forum' started by francesco paolo lavecchia, May 1, 2019.

  1. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    Ciao a tutti,:)

    sto provando Geofence l'esempio di EREL che dovrebbe servire per creare un "recinto" geografico.

    Quello che promette è interessante... peccato che a me NON funziona praticamente MAI.
    Dico praticamente perche' a volte funziona ma su 10 lanci al massimo ricevo la notifica 2 volte e sono sempre nelle stesso punto

    geo.Id = "Test1"
    geo.Center.Initialize2(lat, lon)
    geo.RadiusMeters = 100
    'geo.ExpirationMs = DateTime.TicksPerDay 'expire after one day
    CallSubDelayed3(GeofenceService, "AddGeofence", Me, geo)
    Wait For Geofence_Added (Success As Boolean)
    Log("Geofence added: " & Success)

    lat e lon sono quelle di casa mia (che ovviamente non inserisco :))

    Forse è un problema dovuto al fatto che nell' esempio non c'e' un servizio GPS ?
    Ma anche se ci fosse come faccio a "trasmettere" le coordinate al servizio GEOFENCE?

    Inoltre, nel caso funzionasse bene, si possono aggiungere altri recinti?

    geo.Id = "Test1"
    geo.Center.Initialize2(lat, lon)
    geo.RadiusMeters = 100
    'geo.ExpirationMs = DateTime.TicksPerDay 'expire after one day
    CallSubDelayed3(GeofenceService, "AddGeofence", Me, geo)
    Wait For Geofence_Added (Success As Boolean)
    Log("Geofence added: " & Success)

    geo.Id = "Test2"
    geo.Center.Initialize2(lat2, lon2)
    geo.RadiusMeters = 100
    'geo.ExpirationMs = DateTime.TicksPerDay 'expire after one day
    CallSubDelayed3(GeofenceService, "AddGeofence", Me, geo)
    Wait For Geofence_Added (Success As Boolean)
    Log("Geofence added: " & Success)
     
  2. LucaMs

    LucaMs Expert Licensed User

    Qualcuno ha mai provato GEOFENCE?

    Io no, non ne ho proprio idea; però vedo questo:
    CallSubDelayed lancia la routine "AddGeofence" ma solo quando la routine in corso sia stata completata. Questa cosa è in netto conflitto col Wait For successivo.
     
    sirjo66 likes this.
  3. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    boh, il log cmq stampa success a true (se commento la call success è false quindi qualcosa fa)
    Quello che non capisco è da dove vengono prese le coordinate anche perche' ho messo lo smartphone in modalita' aereo e il geofence FUNZIONA LO STESSO! (vabbe' si fa per dire, in pratica non ci sono differenze con il wifi o la sim)
     
  4. LucaMs

    LucaMs Expert Licensed User

  5. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    se funzionano tutti come il primo... stiamo freschi :)
    In ogni caso torno a ripetere che il geofence (quando funziona) FUNZIONA anche in modalita' aereo!
    Ma come cavolo è possibile???
    Da dove le prende le coordinate?
    E ho appena fatto la prova di allontanarmi (sempre in modalita' aereo) da casa e la notifica non è scattata, sono tornato indietro e dopo aver girato il telefono in orizzontale e verticale per parecchie volte (ogni volta riesegue l'activity_create) e' SCATTATA LA NOTIFICA che segnalava Test1!!
     
  6. LucaMs

    LucaMs Expert Licensed User

    Il GPS è attivo in modalità aereo, il resto no e sarà proprio per questo che l'esempio non ti funziona.

    Io non l'ho ancora provato, sia perché prima dovrei trovare le coordinate del posto in cui mi trovo, sia perché... non ho intenzione di spostarmi :D
     
  7. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    Ah ecco, questo non lo sapevo!
    Pensavo che la modalita' aereo non facesse funzionare nemmeno il GPS (non vedevo l'icona di google maps che mi sa che allora è proprio di google maps :))
    Cmq se uso gps fake, quindi sposto le coordinate, e le metto in

    geo.Center.Initialize2(lat, lon)

    google maps si sposta a lat,lon quindi prende le coordinate dell' app fake mentre geofence no :rolleyes:
     
  8. LucaMs

    LucaMs Expert Licensed User

    Il motivo è che il GPS è un ricevitore, non emette segnali.
     
  9. LucaMs

    LucaMs Expert Licensed User

    Credo che l'esempio di Erel consenta di creare una sola zona-recinzione.

    Se chiedo mi sa che s'incazza :p.

    Manca anche un modo per disattivare la zona (i rilevamenti di entrata e uscita - e pare che esista anche un modo per rilevare la permanenza in una zona).
    Proprio questo mi ha fatto pensare, guardando il sorgente, che con quell'esempio si possa impostare un'unica zona.
     
  10. LucaMs

    LucaMs Expert Licensed User

  11. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    No no, ho fatto appena la prova di inserire 3 punti distanti 200 mt l'uno dall' altro e in effetti funzionano (devo girare il telefono 200 volte ma prima o poi la notifica scatta). Il problema è: perche' non scatta quando entri nel recinto? Se volessi fare una app mica posso costringere l'utente a girare il telefono 200 volte. :D
    Visto che parli inglese MOLTO meglio di me (ho letto quello che gli hai scritto poco fa) gli potresti chiedere per quale motivo non scatta? In debug ho visto (con un breakpoint) che entra spesso nella sub Service_Start quindi teoricamente di potrebbero prendere lat e lon

    upload_2019-5-1_16-48-10.png

    dico teoricamente perche' NON RIESCO (sono un capra lo so) ad estrarre mLatitude e mLongitude

    Con quei valori (stampandoli sull'activity) si puo' verificare se effettivamente sto geofence funziona oppure ha bisogno di ERELrevisione :D
     
  12. LucaMs

    LucaMs Expert Licensed User

    Questo non può accadere; questa routine parte solo all'avvio dell'app. Non è che la chiudi e riapri?

    Hai visto male; lo scrivo benino, grazie a Google Translate :D (poi cerco di dare un'aggiustatina alle traduzioni automatiche, col poco inglese che ricordo dalla scuola!).
     
  13. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    Questo non può accadere; questa routine parte solo all'avvio dell'app. Non è che la chiudi e riapri?

    Non so, quando si ferma sul breakpoint clicco su F5 e si ferma ancora li (forse solo in debug)
     
  14. LucaMs

    LucaMs Expert Licensed User

    Nell'esempio, quando entri o esci dalla zona ti viene inviata una notifica.
     
  15. LucaMs

    LucaMs Expert Licensed User

    i breakpoint ed i "wait for" non vanno molto d'accordo.
     
  16. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    Nell'esempio, quando entri o esci dalla zona ti viene inviata una notifica.
    (Io sto usando il rosso per non confondere la risposta.Come si fa replicare come fai tu?)

    Teoricamente si, peccato che (come ho detto all' inizio) funziona 2 volte su 10


     
  17. LucaMs

    LucaMs Expert Licensed User

    Nelle routine Geofence_Enter e Geofence_Exit del servizio Starter, metti del codice simile a questo:

    Code:
    ' Nella Geofence_Enter
    CallSubDelayed2(Main, "Entrato""Exit " & Id)

    Code:
    ' Nella Main:

    Sub Entrato(msg As String)
        
    ' qui una edittext, come etEntrato.Text = msg
    End Sub
    Simile per la Exit.

    Comunque dovrebbe arrivarti una notifica.
     
  18. LucaMs

    LucaMs Expert Licensed User

    Se hai messo un raggio piuttosto piccolo e magari sei pure al chiuso, non ti funzionerà, il GPS non fa miracoli; imposta un raggio di almeno 100m.
     
  19. francesco paolo lavecchia

    francesco paolo lavecchia Member Licensed User

    Quando avrai voglia di camminare :D ti renderai conto anche tu che, a meno che non sia un problema del mio smartphone, NON FUNZIONA :(
    Nelle routine Geofence_Enter e Geofence_Exit c'e' un ToastMessageShow quindi quando entra li dovrebbe comparire un messaggio... (2 volte su 10)
     
  20. LucaMs

    LucaMs Expert Licensed User

    Non ti funziona nemmeno l'esempio di Erel, senza modifiche?
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice