Autore Topic: Problema con BroadcastReceiver usato con ACTION_TIME_TICK  (Letto 830 volte)

Offline formattato

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lg P990 Dual Core
  • Play Store ID:
    RoxR
  • Sistema operativo:
    Windows xp
Problema con BroadcastReceiver usato con ACTION_TIME_TICK
« il: 04 Giugno 2011, 04:47:53 CEST »
0
Per intercettare il tempo sto usando ACTION_TIME_TICK. Ma perchè il programma si avvia e non fa nulla? Dovrebbe creare un Toast a intervalli di tempo regolari...

La class BroadcastReceiver

Codice (Java): [Seleziona]
public class intercettaminuti extends BroadcastReceiver{

          @Override
      public void onReceive(Context context, Intent intent) {
       
          String action = intent.getAction();
          if (Intent.ACTION_TIME_TICK.equals(action)) {
              Toast a= Toast.makeText(context, "Tick", Toast.LENGTH_LONG);      
              a.show();
          }
}

}


Il file manifest:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.smsghost"
     android:versionCode="1"
     android:versionName="1.0">
  <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
               
        <activity android:name="smsarrivato" android:theme="@android:style/Theme.Translucent"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
       
        <receiver android:name="smsghost"  >
            <intent-filter >
                  <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>  
         
       <receiver android:name="intercettaminuti" >
            <intent-filter>
            <action android:name="android.intent.action.TIME_TICK"/>
            </intent-filter>
        </receiver>
 
    </application>
</manifest>

A parte la classe intercettaminuti che è quella che non funziona, ho altre 2 classi : un BroadcastReceiver per gli sms e una Activity per la schermata video e comunque quest'altra parte funziona. Vorrei gentilmente sapere dove sbaglio!

Offline formattato

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lg P990 Dual Core
  • Play Store ID:
    RoxR
  • Sistema operativo:
    Windows xp
Re:Problema con BroadcastReceiver usato con ACTION_TIME_TICK
« Risposta #1 il: 04 Giugno 2011, 20:28:29 CEST »
0
Ho risolto registrando il BroadcastReceiver da Activity... Grazie a tutti per il non aiuto  ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema con BroadcastReceiver usato con ACTION_TIME_TICK
« Risposta #2 il: 04 Giugno 2011, 20:35:58 CEST »
0
Ho risolto registrando il BroadcastReceiver da Activity... Grazie a tutti per il non aiuto  ;-)

Hai forse deciso di leggere la documentazione?

Citazione
Broadcast Action: The current time has changed. Sent every minute. You can not receive this through components declared in manifests, only by exlicitly registering for it with Context.registerReceiver().

Offline formattato

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lg P990 Dual Core
  • Play Store ID:
    RoxR
  • Sistema operativo:
    Windows xp
Re:Problema con BroadcastReceiver usato con ACTION_TIME_TICK
« Risposta #3 il: 06 Giugno 2011, 00:15:09 CEST »
0
 :-P Diciamo che sono un nuovo androidiano e l'approccio non è dei più facili. Senti... ne approfitto per chiederti un consiglio... Nella mia applicazione ci dovranno essere dei BroadcastReceiver e un WidgetProvider ma non è prevista nessuna layout.
Il problema è questo: uno dei BroadcastReceiver è appunto un TIME_TICK che ogni tot di tempo salva dei dati e lo deve fare sempre, quindi all'accensione del cellulare e al caricamento del widget già precedentemente installato sulla home, si dovrebbe registrare il BroadcastReceiver da WidgetProvider e non da una activity.
1) Come faccio a registrare un BroadcastReceiver da Widget?
2) C'è un altro modo per registrarlo senza Activity o al massimo da una Activity senza interfaccia grafica?
Ciao e Grazie