CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 14
Discussione:

App Inventor - Invio dati tramite URL con metodo GET

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2009
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    App Inventor - Invio dati tramite URL con metodo GET

    Ciao a tutti,
    ho la necessità di realizzare una app client-server che ciclicamente (tipo ogni 2 o 3 minuti) invia in automatico dei dati ad un server tramite URL con metodo GET. Premetto che l'app funziona abbastanza bene anche se vorrei risolvere un problemino; arrivo al dunque: lanciando l'app, dopo una serie di elaborazioni, vengono inviati per la prima volta i dati tramite browser; quindi l'app tramite Activity Starter apre in automatico la finestra del browser e da appunto i dati in pasto al server

    http://www.mio_server.it/?parametro1=x&parametr2=y

    con l'apposito tasto del telefono tornando indietro nella app, dopo il tempo prestabilito, l'operazione viene ripetuta; dunque viene richiamato nuovamente il browser per l'invio dei dati e la finestra del browser rimane sempre aperta, come la prima volta. Se evito di tornare indietro e lascio frullare l'app in automatico, i dati non vengono più inviati in quanto all'invio successivo, con l'istanza del browser aperta, la nuova URL con i nuovi dati non viene caricata.
    Dunque quello che mi chiedo è:
    - posso evitare di aprire l'istanza del browser, pur garantendo l'invio dei dati?
    In parte mi rispondo da solo! Ci sono app che lo fanno, ma come?
    - esiste un'istruzione o un comando che eventualmente successivamente chiude il browser? Una sorta di Stop Activity?

    Considerate la url come una semplice stringa di testo. In allegato c'è un'immagine della funzione di invio URL. Cosa c'è che sbaglio?
    Mi sono da poco avvicinato al mondo Android, si accettano consigli e soluzioni.
    Vi ringrazio anticipatamente per l'aiuto. bye
    Immagini allegate

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Apr 2011
    Messaggi
    10

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    i dati devi mandarli in GET (url con tutti i parametri visibili) alla pagina o in POST?

    In generale direi che la combinazione HttpClient e HttpGet (o HttpPost) possono fare al caso tuo. Non uso app inventor quindi non so indicarti come fare con precisione.

    Mi ritrovo ad aver iniziato da poco anche io con la programmazione android (ma uso eclipse perchè almeno sui linguaggi di programmazione ne so almeno un minimo), magari qualcun altro può dare istruzioni più precise (e magari indicando che ho scritto una cretinata )

  4. #3
    Baby Droid


    Registrato dal
    Jun 2009
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da zky2007 Visualizza il messaggio
    i dati devi mandarli in GET (url con tutti i parametri visibili) alla pagina o in POST?

    In generale direi che la combinazione HttpClient e HttpGet (o HttpPost) possono fare al caso tuo. Non uso app inventor quindi non so indicarti come fare con precisione.

    Mi ritrovo ad aver iniziato da poco anche io con la programmazione android (ma uso eclipse perchè almeno sui linguaggi di programmazione ne so almeno un minimo), magari qualcun altro può dare istruzioni più precise (e magari indicando che ho scritto una cretinata )
    Come ho specificato, i dati li mando con il metodo GET ed il tutto funziona. Il problema riguarda l'istanza del browser che naturalmente rimane aperta e al secondo ciclo mi blocca la mia app, da cui parte l'activity start del browser stesso. Ho provato con il metodo AfterActivity ma non funziona!
    Presumo comunque che ancora AppInventor non sia abbastanza maturo al fine di realizzare applicazioni complesse in ambito industriale, domotica ecc ecc.
    Magari la soluzione, spero qualcuno possa aiutarmi!! Avevo pensato di usare il componente TinyWebDB; cosa ne pensate?

  5. #4
    Senior Droid


    Registrato dal
    May 2010
    Messaggi
    348

    Ringraziamenti
    97
    Ringraziato 32 volte in 28 Posts
    Predefinito

    Potresti provare a lanciare un timer quando apri l'activity che ti fa partire il browser, e quando il tempo del timer scade cerchi di chiudere il browser che hai aperto.

    Altrimenti prova a vedere anche App Inventor Extender che ha delle altre classi che permettono di aprire webframe sia in modalità GET che POST
    magari ti torna utile

    TinyWebDb serve per memorizzare e leggere i dati su un db esterno, come lo vorresti usare nella tua app?

  6. #5
    Baby Droid


    Registrato dal
    Jun 2009
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da seblog Visualizza il messaggio
    Potresti provare a lanciare un timer quando apri l'activity che ti fa partire il browser, e quando il tempo del timer scade cerchi di chiudere il browser che hai aperto.

    Altrimenti prova a vedere anche App Inventor Extender che ha delle altre classi che permettono di aprire webframe sia in modalità GET che POST
    magari ti torna utile

    TinyWebDb serve per memorizzare e leggere i dati su un db esterno, come lo vorresti usare nella tua app?
    Niente escludo TinyWebDB in quanto è possibile utilizzarlo con un server cloud di mamma Google sfruttando un AppEngine in Java o Python. Seblog come potrei fare a chiudere il browser in automatico? AppInventor prevede l'uccisione di una attività? Effettivamente dopo un 10 sec potrei chiuderlo ma bisognerebbe avere a disposizione un metodo tipo "StopActivity" o qualcosa del genere!!
    Proverò a documentarmi su App Inventor Extender

  7. #6
    Senior Droid


    Registrato dal
    May 2010
    Messaggi
    348

    Ringraziamenti
    97
    Ringraziato 32 volte in 28 Posts
    Predefinito

    No, non puoi killare un applicazione,
    il fatto è (sempre da quel che ho capito io) che con activitystarter to lanci un applicazione secondaria e la tua app primaria (in questo caso quella app inventor) viene bloccata (non gira più insomma)
    quindi mettere un timer come avevo pensato non va bene (infatti appena lanci activitystarter ti bloccherebbe anche il timer)
    Non so se sia possibile risolvere questo problema, intanto prova a leggere qui in inglese un approfondimento su activity starter:

    codice:
    Returning results from App Inventor Activities
    
    You can create App Inventor activities that return a (text) result to their callers, so they can be used as subroutines. To To return a result, invoke the command close screen with result (located in the Control drawer). Your subroutine will will terminate, and the argument of close screen with result will become available to the activity starter that started it, passed as an argument to the AfterActivity event.
    
    More specifically, suppose there is a SubroutineApp designed to be started with an activity starter and return a value, and a CallerApp that uses an ActivityStarter to call SubroutineApp. To return the result, SubroutineApp executes close screen with result, giving it as argument the result that should be returned to the caller.
    
    On the caller side, CallerApp sets up its Activity Starter with the correct package name and class name for starting SubroutineApp. It must also set the ActivityStarter.ResultName property to the special text string APP_INVENTOR_RESULT. Then CallerApp starts the SubroutineApp activity. When the subroutine finishes, the Activity Starter's AfterActivity event triggers, and the result argument to AfteActivity will be the result that was passed back from SubroutineApp. That same information is available as the ActivityStarter's Result property.
    
    Using this method, you can combine several App Inventor apps, both apps you write, as well as apps you share with others.
    anche la risposta a questo post sembra lasciare poche speranze ...

    Closing Media player through activity starter? - Android Forums

    chiede come può chiudere il media player (sempre un evento activitystarter) ma lo sviluppatore google dice che quando si lancia un activity si è alla mercè di questa e quindi non è che noi possiamo controllarne la chiusura (ma bisogna chiuderla col tasto back...)

    mi sa che visto che app inventor non lavora in multitask c'è poco da fare...:o

    prova a dirmi che ne pensi...

  8. #7
    Baby Droid


    Registrato dal
    Jun 2009
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da seblog Visualizza il messaggio
    No, non puoi killare un applicazione,
    il fatto è (sempre da quel che ho capito io) che con activitystarter to lanci un applicazione secondaria e la tua app primaria (in questo caso quella app inventor) viene bloccata (non gira più insomma)
    quindi mettere un timer come avevo pensato non va bene (infatti appena lanci activitystarter ti bloccherebbe anche il timer)
    Non so se sia possibile risolvere questo problema, intanto prova a leggere qui in inglese un approfondimento su activity starter:

    codice:
    Returning results from App Inventor Activities
    
    You can create App Inventor activities that return a (text) result to their callers, so they can be used as subroutines. To To return a result, invoke the command close screen with result (located in the Control drawer). Your subroutine will will terminate, and the argument of close screen with result will become available to the activity starter that started it, passed as an argument to the AfterActivity event.
    
    More specifically, suppose there is a SubroutineApp designed to be started with an activity starter and return a value, and a CallerApp that uses an ActivityStarter to call SubroutineApp. To return the result, SubroutineApp executes close screen with result, giving it as argument the result that should be returned to the caller.
    
    On the caller side, CallerApp sets up its Activity Starter with the correct package name and class name for starting SubroutineApp. It must also set the ActivityStarter.ResultName property to the special text string APP_INVENTOR_RESULT. Then CallerApp starts the SubroutineApp activity. When the subroutine finishes, the Activity Starter's AfterActivity event triggers, and the result argument to AfteActivity will be the result that was passed back from SubroutineApp. That same information is available as the ActivityStarter's Result property.
    
    Using this method, you can combine several App Inventor apps, both apps you write, as well as apps you share with others.
    anche la risposta a questo post sembra lasciare poche speranze ...

    Closing Media player through activity starter? - Android Forums

    chiede come può chiudere il media player (sempre un evento activitystarter) ma lo sviluppatore google dice che quando si lancia un activity si è alla mercè di questa e quindi non è che noi possiamo controllarne la chiusura (ma bisogna chiuderla col tasto back...)

    mi sa che visto che app inventor non lavora in multitask c'è poco da fare...:o

    prova a dirmi che ne pensi...
    ok grazie Seblog, penso ci sia poco da fare!! Ma allora mi chiedo: come è possibile inviare dei semplici dati (tipo una stringa) ciclicamente ad un server, senza necessariamente usare il metodo GET e quindi un browser, senza naturalmente l'ausilio dell'omino che stà appresso all'app!!
    Ci deve pur essere un modo...

  9. #8
    Senior Droid


    Registrato dal
    May 2010
    Messaggi
    348

    Ringraziamenti
    97
    Ringraziato 32 volte in 28 Posts
    Predefinito

    Quote Originariamente inviato da Nikola Visualizza il messaggio
    ok grazie Seblog, penso ci sia poco da fare!! Ma allora mi chiedo: come è possibile inviare dei semplici dati (tipo una stringa) ciclicamente ad un server, senza necessariamente usare il metodo GET e quindi un browser, senza naturalmente l'ausilio dell'omino che stà appresso all'app!!
    Ci deve pur essere un modo...
    penso che la semplice risposta sia che attualmente non è possibile farlo, magari con una release futura di App Inventor si, con quella di oggi no...mi spiace!

  10. #9
    Baby Droid


    Registrato dal
    Jun 2009
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da seblog Visualizza il messaggio
    penso che la semplice risposta sia che attualmente non è possibile farlo, magari con una release futura di App Inventor si, con quella di oggi no...mi spiace!
    ok grazie!!

  11. #10
    Androidiano L'avatar di DevonMiles


    Registrato dal
    Dec 2009
    Messaggi
    145

    Ringraziamenti
    18
    Ringraziato 20 volte in 18 Posts
    Predefinito

    Ciao,
    provato con app inventor extender?
    AppInventor Extender
    HTC Tattoo
    Versione Android 2.3.7
    ROM nFinityGB-1.13
    Recovery ClockWorkMod 3.0.0.5

    Mediacom SmartPad 810C
    Versione Android 4.0.3
    ROM Mediadroid 1.0
    Recovery ClockWorkMod 5.5.0.4

    Samsung Galaxy S Advance I9070
    Versione Android 4.4.2
    ROM Carbon-KK-

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy