Autore Topic: Broadcast Intent Modifica Provider  (Letto 474 volte)

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Broadcast Intent Modifica Provider
« il: 17 Novembre 2011, 07:52:43 CET »
0
Salve ragazzi alla mia applicazione serve sapere se viene modifica la rubrica in qualke modo(inserimento,aggiornamento o eliminazione) e volevo sapere se azioni del genere attivassero un evento broadcast o qualke altro tipo di evento? Spulciando un po i Broadcast Intent ho trovato questo :
Intent | Android Developers
e cioè Intent.ACTION_PROVIDER_CHANGED
allora ho implementato il mio Broadcast Receiver:
Codice (Java): [Seleziona]
public class BroadcastProviderChanged extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
               
                String action = intent.getAction();
        if (Intent.ACTION_PROVIDER_CHANGED.equals(action)) {
            Uri dataURI= intent.getData();
            String dataURIPath = dataURI.toString();
                Intent myIntent = new Intent(Intent.ACTION_VIEW, null, context, SettingActivity.class);  
                String pack=context.getPackageName();
                myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                myIntent.putExtra(pack + ".uri", dataURIPath);
               
                context.startActivity(myIntent);
               

           
        }
e questo è il manifest:
Codice (Java): [Seleziona]
<receiver android:name=".BroadcastProviderChanged">
                        <intent-filter>
                                <action android:name="android.intent.action.PROVIDER_CHANGED" />
                        </intent-filter>
                </receiver>

nn ho inserito permessi perkè nn ho visto scritto ke ne servissero...però il tutto nn funziona la mia activity SettingAvtivity nn viene richiamata e tanto meno gli viene passato nulla...nn capisco dove sbaglio...se qualcuno mi puo dare una mano....grazie mille raga
« Ultima modifica: 18 Novembre 2011, 09:00:49 CET da raimondo »

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:Broadcast Intent Modifica Provider
« Risposta #1 il: 18 Novembre 2011, 16:35:28 CET »
0
nessuno ??? :'(

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Broadcast Intent Modifica Provider
« Risposta #2 il: 18 Novembre 2011, 23:18:57 CET »
0
Ciao Raimondo,
Prova a dare uno sguardo a questi materiali e vedi se possono esserti utili:
 http://developer.android.com/resources/articles/contacts.html
 http://developer.android.com/reference/android/provider/Contacts.Intents.html
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:Broadcast Intent Modifica Provider
« Risposta #3 il: 19 Novembre 2011, 08:41:59 CET »
0
ciao ti ringrazio però nn devo essere io a inserire il contatto ma quando lo fa l'utente in un qualsiasi momento....la mia applicazione se ne deve accorgere...grazie cmq

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Broadcast Intent Modifica Provider
« Risposta #4 il: 19 Novembre 2011, 11:22:27 CET »
0
In realtà il secondo link Contacts.Intents esordisce così: Contains helper classes used to create or manage Intents that involve contacts.
Ovvero contiene classi di supporto utilizzate per creare o gestire gli Intert che sono legati ai contatti.
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:Broadcast Intent Modifica Provider
« Risposta #5 il: 19 Novembre 2011, 13:58:25 CET »
0
però da quello ke ho letto(cmq la classe è deprecata ed è stata sotituita) serve quando l'applicazione deve inserire un contatto...a me il problema è diverso...devo controllare quando l'utente in un qualsiasi momento inserisce un contatto e per questo mi serve un evento broadcast e un broadcast receiver per essere avvisato di questo particolare esempio...hai dato un occhio al codice? c'è qualcosa di sbagliato...ciao e grazie

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Broadcast Intent Modifica Provider
« Risposta #6 il: 22 Novembre 2011, 16:24:19 CET »
0
Ciao raimondo,
ho provato il tuo codice e mi sono accorto che il Broadcast Receiver non intercetta nè l'aggiunta di un contatto e nè l'eliminazione di un contatto. Quel ACTION_PROVIDER_CHANGED non sembra riferirsi ai contatti.
Ho anche provato a mettere questi altri Intent, ma non sembra intercettarli
Codice (XML): [Seleziona]
<receiver android:name=".BroadcastProviderChanged">
            <intent-filter >
                <action android:name="android.intent.action.PROVIDER_CHANGED" />
                <action android:name="android.intent.action.INSERT" />
                <action android:name="android.intent.action.DELETE" />
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.EDIT" />
            </intent-filter>
        </receiver>
« Ultima modifica: 22 Novembre 2011, 16:45:25 CET da alexAndroid »
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.