Autore Topic: Aggiornamento Widget da Sms  (Letto 736 volte)

Offline Sethi

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung P1000
  • Sistema operativo:
    Mac OS X 10.6.7
Aggiornamento Widget da Sms
« il: 11 Maggio 2011, 09:42:26 CEST »
0
Ciao, non mi è molto chiaro come procedere. Ho una Classe:

Codice (Java): [Seleziona]
public class SmsReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        ... leggo l'sms e lo processo ...
    }
}

E un'AppWidget con un bottone e una textview:
Codice (Java): [Seleziona]
public class MyWidget extends AppWidgetProvider
{
        public static String ACTION_WIDGET_UPDATESMS = "ActionUpdateSmsWidget";
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
        {
           ... inizializzazione dell'azione che dal bottone lancia un'activity -> Questo funziona
        }
}

Come ho scritto il bottone funziona e richiama un'altra activity che fa altri lavori, ma se volessi invece dalla classe SmsReceiver aggiornare il contenuto a video della textview del widget passando dei parametri?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Aggiornamento Widget da Sms
« Risposta #1 il: 11 Maggio 2011, 10:04:44 CEST »
0
Fai in modo che il tuo widget, in quanto broadcast receiver, si metta in ascolto di un messaggio da te definito, che viene parsato nella onReceice() e che aggiorna il widget come da tua richiesta.

A questo punto ti basta solo che la tua classe SmsReceiver invii questo stesso messaggio, richiamando così l'aggiornamento del widget.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Sethi

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung P1000
  • Sistema operativo:
    Mac OS X 10.6.7
Re:Aggiornamento Widget da Sms
« Risposta #2 il: 11 Maggio 2011, 11:17:39 CEST »
0
Nel frattempo ho risolto così, ha senso? (funziona, ma non so se sia 'elegante'  ;-)

Codice (Java): [Seleziona]
                strMsg = context.getResources().getString(R.string.stringTextCpuList) + SmsHandling.TipoEvento() + " " + Traduttore.descrizioneCentrale(context, SmsHandling.Cpu());
                RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main);
                updateViews.setTextViewText(R.id.StatoSistema, strMsg);

                // Push update for this widget to the home screen
                ComponentName thisWidget = new ComponentName(context, MyWidget.class);
                AppWidgetManager manager = AppWidgetManager.getInstance(context);
                manager.updateAppWidget(thisWidget, updateViews);