4

これが私の質問です。私の目標は、グーグルプレイからアプリのインストールを追跡することです。アプリにBroadcastReceiverを記述しています。したがって、アプリがグーグルプレイからダウンロードされると、Googleページに従って「com.android.vending.INSTALL_REFERRER」がブロードキャストされます: https ://developers.google.com/analytics/devguides/collection/android/v2 /キャンペーン

しかし、私の質問は、アプリのインストール中にこれが発生した場合、このインテントを受信するために、アプリに付属のブロードキャストレシーバーを開始するにはどうすればよいですか?

言い換えれば、私の論理は、受信を実行するためにアプリのインストールを完了する必要があるということです。または、アプリを初めて起動するインテントは「com.android.vending.INSTALL_REFERRER」インテントであるため、インテントはonCreate()関数に渡されます。

私はここで少し混乱しています、そしてこれのためのいくつかの良いドキュメントを見つけるのが好きではありません。誰かが私に正しい方向を示しますか?ありがとう。

4

2 に答える 2

2

「レシーバーが呼び出されたときにアプリの残りの部分が実行されないことを忘れないでください。通常、SharedPreferencesなどのどこかにリファラー文字列を記録し、メインアプリが実行されたときにそれを収集して分析ライブラリを使用します(確かにそうしません)。ネットワーク接続などを待っている受信機での処理をブロックしたい!)

参照

于 2012-11-29T22:36:24.690 に答える
0

アプリがインストールされると、このインテントが「起動」されます。

起動されたインテントに一致するインテントフィルターを使用してAndroidManifest.xmlでレシーバーが宣言されている場合、そのレシーバーコードが開始され、インテントが渡されます。アプリケーションのonCreate()に渡されることも、後で開始されるアクティビティも渡されません。

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

このブロードキャストレシーバーコードでは、受信したインテントを解析して、必要な操作を行うことができます。たとえば、バックグラウンドスレッドを開始し、その情報をローカルまたはネットワークに記録します。

インテントには、最初に渡された「リファラー」(つまり、このダウンロードとインストールを引き起こすPlaystoreへのリンクはどこにありましたか?)識別子が含まれている場合もあります(ストア内のアプリへのリンクの追加パラメーターを介して)。これは、実際にアプリのインストールにつながる紹介のソースを追跡するのに非常に役立ちます。

また、リンクには、アプリを構成するための追加のパラメーターを含めることができます。これらのパラメーターは、レシーバーコードで処理(および保存?)し、後でアプリを起動するときに読み取ります。

于 2013-07-16T16:53:29.737 に答える