CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Pagina 1 di 3 123 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 30
Discussione:

Creare un Widget

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
    Androidiano VIP L'avatar di elegos


    Registrato dal
    Jul 2009
    Messaggi
    1,714

    Ringraziamenti
    2
    Ringraziato 153 volte in 120 Posts
    Predefinito

    Creare un Widget

    Salve a tutti!

    Ho appena seguito il tutorial "Hello, Android" ed ho visto come sia facile creare un'interfaccia con XML, specialmente quando si ha il plugin di Android SDK su Eclipse.

    Ho avuto esperienza in C/C++, PHP, Objective-C e devo dire che Java racchiude un po' di tutti questi linguaggi

    Ora la domanda è: come si crea un widget? Possiamo discuterne qui, anziché rimandarmi a mille guide? Così poco per volta ci creiamo la nostra guida, non vi pare?

    Lo scopo di questo widget sarebbe il seguente:
    1. richiedere via USSD un dato al provider dei servizi (WIND). USSD sta per "Unstructured Supplementary Service Data", ed è il codice inviato in ritorno ad una "chiamata" del genere *123# (nello specifico richiesta di credito residuo delle prepagate WIND)

    2. manipolare le stringhe per trovare il dato che ci interessa

    3. creare una interfaccia al nostro widget con uno spazio di testo ove inserire il dato estratto

    Questi sono i tre punti, ora cominciamo con il lavoro ^^

    Ora i documenti, cominciamo con la chiamata USSD che ne dite?
    Dial a USSD code - Android Developers | Google Groups
    Sono un po' confuso, è tutto nuovo per me, ma sembra una discussione interessante. Sapreste estrapolarmi i contenuti essenziali, con eventuali link?

    Grazie e speriamo di tirar su qualcosa

  2.  
  3. #2
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Che ne dici se invece di sviluppare direttamente il widget facciamo un activity che fa la stessa cosa?

    Poi portarlo a widget è piu facile

    Twitter @veke87

  4. #3
    Androidiano VIP L'avatar di elegos


    Registrato dal
    Jul 2009
    Messaggi
    1,714

    Ringraziamenti
    2
    Ringraziato 153 volte in 120 Posts
    Predefinito

    Per me va bene

    se vuoi possiamo parlare via MSN/Skype/GoogleChat e postare qui i progressi

  5. #4
    Androidiano


    Registrato dal
    Jul 2009
    Messaggi
    93

    Ringraziamenti
    6
    Ringraziato 2 volte in 2 Posts
    Predefinito

    ciao, presente!
    ho galaxy e wind su cui volevo sviluppare proprio un widget per credito residuo e traffico residuo internet, per il traffico residuo si può far accedere il widget alla pagina internet del profilo wind, e a quel punto dallo stesso profilo si può ricavare il credito residuo senza scomodare l'ussd :P
    prima però sto sbattendo un po' la testa sul root del galaxy, volevo contribuire e dare una mano su quello

  6. #5
    Androidiano VIP L'avatar di elegos


    Registrato dal
    Jul 2009
    Messaggi
    1,714

    Ringraziamenti
    2
    Ringraziato 153 volte in 120 Posts
    Predefinito

    Il problema di fondo è che usando internet sei costretto a connetterti appunto, mentre l'USSD (che non sembra difficile da utilizzare) è un servizio gratuito

    Per il GoogleTalk leggete il mio codice a barre :P

  7. #6
    Androidiano


    Registrato dal
    Jul 2009
    Messaggi
    93

    Ringraziamenti
    6
    Ringraziato 2 volte in 2 Posts
    Predefinito

    si, su quello hai ragione... allora si potrebbe implementare nel widget l'impostazione visualizza o meno traffico internet residuo e basta

  8. #7
    Androidiano VIP L'avatar di elegos


    Registrato dal
    Jul 2009
    Messaggi
    1,714

    Ringraziamenti
    2
    Ringraziato 153 volte in 120 Posts
    Predefinito

    Beh quello era il primo step ^^
    Come i widget di vodafone, con questo sistema si potrebbe benissimo richiedere tutta una lista di informazioni --> Guida riordinata ai codici Wind - Operatori

  9. #8
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    t'ho aggiunto

    Twitter @veke87

  10. #9
    Androidiano VIP L'avatar di elegos


    Registrato dal
    Jul 2009
    Messaggi
    1,714

    Ringraziamenti
    2
    Ringraziato 153 volte in 120 Posts
    Predefinito

    OK allora tra mille peripezie sono arrivato a queste considerazioni:

    startActivityForResult funziona e posso associarlo ad un onActivityResult "override", quindi soppiantando l'onActivityResult di default.

    Il problema è il seguente: il programma fa a tutti gli effetti una chiamata, quindi non passa per l'onActivityResult!!!

    Spiego meglio:
    Log del programma:
    codice:
    Caricamento dati in corso...
    *123%23
    USSD: 1 0 null
    Da notare che USSD: 1 0 null parte esattamente quando l'app dice "Esecuzione codice USSD...", quindi si presuppone che la chiamata "finisca", quindi parte un secondo processo che fa visualizzare il popup informativo, quindi infine arriva il secondo popup "Il credito e': x.xx Euro..."

    QUINDI ora c'è da capire come sopprimere il popup informativo (un altro Override?), ma soprattutto capire come captare i dati in arrivo dell'USSD.

    OPPURE cercare di capire, anziché android.intent.action.CALL, quale sia il comando per far partire direttamente la richiesta USSD.

    Codice:
    codice:
    package com.elegos.windinforma;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class WindInforma extends Activity {
        /** Called when the activity is first created. */
    
        private TextView view;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            String encodedHash = Uri.encode("#");
    
            this.view = (TextView) findViewById(R.id.main);
            this.view.setText("Caricamento dati in corso...");
            call("*123" + encodedHash);
        }
    
        protected void call(String phoneNumber) {
        	this.view.append("\n"+phoneNumber);
        	try {
        		startActivityForResult(new Intent("android.intent.action.CALL", Uri.parse("tel:" + phoneNumber)), 1);
        	} catch (Exception eExcept) { this.view.append("\n\n\n"+eExcept.toString()); }
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        	this.view.append("\nUSSD: " + requestCode + " " + resultCode + " " + data);
        }
    }
    Ultima modifica di elegos; 19-07-09 alle 00:24

  11. #10
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Quote Originariamente inviato da elegos Visualizza il messaggio
    OK allora tra mille peripezie sono arrivato a queste considerazioni:

    startActivityForResult funziona e posso associarlo ad un onActivityResult "override", quindi soppiantando l'onActivityResult di default.

    Il problema è il seguente: il programma fa a tutti gli effetti una chiamata, quindi non passa per l'onActivityResult!!!

    Spiego meglio:
    Log del programma:
    codice:
    Caricamento dati in corso...
    *123%23
    USSD: 1 0 null
    Da notare che USSD: 1 0 null parte esattamente quando l'app dice "Esecuzione codice USSD...", quindi si presuppone che la chiamata "finisca", quindi parte un secondo processo che fa visualizzare il popup informativo, quindi infine arriva il secondo popup "Il credito e': x.xx Euro..."

    QUINDI ora c'è da capire come sopprimere il popup informativo (un altro Override?), ma soprattutto capire come captare i dati in arrivo dell'USSD.

    OPPURE cercare di capire, anziché android.intent.action.CALL, quale sia il comando per far partire direttamente la richiesta USSD.

    Codice:
    codice:
    package com.elegos.windinforma;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class WindInforma extends Activity {
        /** Called when the activity is first created. */
    
        private TextView view;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            String encodedHash = Uri.encode("#");
    
            this.view = (TextView) findViewById(R.id.main);
            this.view.setText("Caricamento dati in corso...");
            call("*123" + encodedHash);
        }
    
        protected void call(String phoneNumber) {
        	this.view.append("\n"+phoneNumber);
        	try {
        		startActivityForResult(new Intent("android.intent.action.CALL", Uri.parse("tel:" + phoneNumber)), 1);
        	} catch (Exception eExcept) { this.view.append("\n\n\n"+eExcept.toString()); }
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        	this.view.append("\nUSSD: " + requestCode + " " + resultCode + " " + data);
        }
    }

    Hmm, strano che non ti dia il risultato sperato..

    Twitter @veke87

Pagina 1 di 3 123 ultimoultimo
Ultima pagina

Discussioni simili

  1. creare barcode 2d
    Da paolosv nel forum HTC Dream / Tmobile G1
    Risposte: 8
    Ultimo messaggio: 12-01-14, 12:53
  2. Widget Weather Forecast, ottimo set di widget per il meteo APK
    Da androidworldpress nel forum Le Applicazioni per Android
    Risposte: 5
    Ultimo messaggio: 27-01-10, 08:49
  3. Creare tracce GPS
    Da maxoo83 nel forum HTC Magic
    Risposte: 2
    Ultimo messaggio: 01-12-09, 23:06
  4. Iniziare a creare ROM
    Da federico nel forum Risorse Utili
    Risposte: 0
    Ultimo messaggio: 04-11-09, 21:57
  5. Help creare Widgets
    Da matrix888 nel forum Le Applicazioni per Android
    Risposte: 0
    Ultimo messaggio: 10-07-09, 14:31

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