73 votes

Obtenir référent après l'installation de l'application sur Android Market

Je suis en train d'enregistrer un Récepteur de Radiodiffusion qui attrape "com.android.des distributeurs de.INSTALL_REFERRER" intentions lancé par Android, une fois qu'une application est installée sur le Marché.

Je suis ici dans les détails: http://code.google.com/mobile/analytics/docs/android/#referrals

Cependant, je ne peux pas utiliser Google Analytics j'ai donc créé ma propre solution. J'ai ajouté ce qui suit à mon fichier manifeste:

<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

et créé une base de BroadcastReceiver classe:

public class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();
        String referrerString = extras.getString("referrer");

        Log.w("TEST", "Referrer is: " + referrerString);
    }
}

Toutefois, lorsque l'application est installé le récepteur ne semble pas attraper l'Intention (si l'Intention est de même de sa diffusion?) et je n'ai pas de sortie d'enregistrement.

Vais-je mal quelque part ou est le Marché n'est plus le lancement de ces Intentions lorsqu'une application est installée?

56voto

Tobia Points 277

Je voudrais essayer d'aider ceux qui, comme moi, ne parvient pas à faire install_referrer qui fonctionne et qui ne trouvez pas TOUTES les informations utiles à propos de ces fonctions.

Notes:

  1. L'intention de l' com.android.vending.INSTALL_REFERRER sera pris pendant le processus d'installation, pas lorsque l'application démarre pour la première fois.
  2. Le référent ...extras.getString("referrer").. est fixe, mais le contenu peut être n'importe quelle chaîne de valeur dans le respect de l'http get syntaxe ...referrer=thatsthevalue&thisisnot=xxx

Le code ci-dessus est correct, juste quelques explications pour compléter les infos:

  1. Manifeste Android. L' <receiver> balises doivent être à l'intérieur de la <application> tags.
  2. La bonne url pour relier le marché n'est pas le résultat de la célèbre google formes dans le sdk

mais celui-ci

http://market.android.com/details?id=your.application.package.name&referrer=my_referrer_finally_works_fine

Évidemment, vous devez suivre le lien à partir de l'appareil mobile et la seule façon pour un test complet est de publier un test de l'application sur le marché.

Et une finale et note personnelle.

Je ne comprends pas pourquoi ces infos sont omis complètement et j'espère que Google va agir pour le détaillant.

6voto

Tom Points 4834

Je pense que ces réponses doivent avoir été écrits pré-Android 3.1 - parce que les choses ont changé dans l'un d'importation.

Aujourd'hui, le système des marques app comme inactifs lorsqu'ils sont installés, ils ne reçoivent pas INSTALL_REFERRER ou toute autre émission jusqu'à ce que le consentement explicite de l'utilisateur active l'application en cours d'exécution (ou de placer un widget).

5voto

Jake Points 221

Bon alors j'ai trouvé la raison pour laquelle l'Intention n'était pas d'être lancé. Apparemment, vous DEVEZ utiliser les mêmes noms de paramètres comme indiqué ici: http://code.google.com/mobile/analytics/docs/android/#referrals

Vous ne pouvez pas utiliser votre propre nom de paramètre que j'étais en train de faire :S

2voto

JavaCoderEx Points 240

Je suis d'accord que Google documentation n'est pas le meilleur. Cependant, je n'ai pu obtenir de l'intention à feu par télécharger l'app sur la Place du Marché, puis de télécharger/installer. L'intention n'lancer immédiatement après le téléchargement/instal - l'utilisateur n'a pas à démarrer l'application. Je vais l'utiliser pour démarrer un service d'arrière-plan.

2voto

white_gecko Points 1362

Veuillez noter que ce n'est pas la première intention, mais seulement un android relatives au marché de l'intention qui est envoyé mes l'android market de google. Si vous installez l'application par le biais d'une autre ressource que de l'android market, il va pas le feu.

Utilisez le lien qui vous pouvez y construire: http://code.google.com/mobile/analytics/docs/android/#android-market-tracking obtenir le référent de l'intention et de le prendre à part pour obtenir les différents paramètres

referrer = intent.getStringExtra("referrer");
Map<String, String> params = Toolbox.getQueryMap(referrer);

P. S. Vous n'avez pas besoin de savoir lire pour lire le deviceid/IMEI pour ce faire, que certaines applications ne. Vous ne voulez pas de l'espionnage de vos utilisateurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X