Sono andato avanti e ho pubblicato un'app per pixel finder per giocare con lo snooping sull'intento. Per qualche ragione, quando ho registrato due diversi ricevitori di trasmissione (es. Com.google.android.apps.analytics.AnalyticsReceiver e il mio), non l'ho mai ricevuto da solo.
Quindi, invece, ho registrato solo il mio ricevitore, elaborare le informazioni e passarle a Google Analytics. Non so quanto sia kosher, ma funziona. Il codice segue.
public class ZSGoogleInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
// Next line uses my helper function to parse a query (eg "a=b&c=d") into key-value pairs
HashMap<String, String> getParams = Utility.getHashMapFromQuery(referrerString);
String source = getParams.get("utm_campaign");
if (source != null) {
SharedPreferences preferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
Editor preferencesEditor = preferences.edit();
preferencesEditor.putString("ga_campaign", source);
preferencesEditor.commit();
}
// Pass along to google
AnalyticsReceiver receiver = new AnalyticsReceiver();
receiver.onReceive(context, intent);
}
}
Poi, quando l'applicazione è in realtà lanciato, si può tirare il valore di nuovo fuori delle preferenze condivise e passarlo con iscrizione utente o qualsiasi altra cosa. Ho usato il tag della campagna per i miei scopi, ma puoi prendere tutti i parametri che desideri dalla stringa del referrer creata with this tool.
La ragione più di un ricevitore doesn' Il lavoro è che non è possibile registrare più di un ricevitore per lo stesso filtro di intent. Questo è il punto della documentazione confusa qui - http://code.google.com/apis/analytics/docs/mobile/android.html#google-play-tracking - sembra che tu non possa avere più di uno * qualsiasi * tipo di BroadcastReceiver in un'applicazione, che ovviamente non è vero. –
@DaveSims - Sì, hanno aggiunto quella nota molto tempo dopo aver fatto questo post. Però non particolarmente chiaro, sono d'accordo. – DougW
@DougW my que è come posso ottenere da questo link "http://market.android.com/details?id=com.lifestreet.android.TestInstallationIntent&referrer=bb%3DAAAAAAAAAA&feature=search_result" referre = bb supponiamo di aver aggiunto nel codice manifesto quattro righe di google predefinite di questo com.google.android.apps.analytics.AnalyticsReceiver ho bisogno di qualsiasi extra nel mio codice – Khan