BroadcastReceiver没有捕获INSTALL_REFERRER广播

时间:2012-05-14 07:49:13

标签: android broadcastreceiver referrer

我创建了一个应用程序,其中有一个可以捕获INSTALL_REFERRER广播的BroadcastReceiver。

当我使用eclipse安装应用程序并使用adb创建广播时,我发现一切正常,LogCat正在显示它应该是的所有内容。 但是,当我从Play商店安装应用程序时,logcat上没有显示任何内容。 如果我理解正确的话,Play商店应用程序应该创建一个广播女巫正在安装的应用程序应该捕获,对吗?

基本上就是我在做什么:

public class SDK_Referrer extends BroadcastReceiver
{
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals("com.android.vending.INSTALL_REFERRER"))
        {
            String referrer = intent.getStringExtra("referrer");
            if (!(referrer == null || referrer.length() == 0))
            {
                // extracting the relevant data to Map
                Log.d("SAMPLE", "Generating Ymid from referrel");
                Map<String, String> referralmap = 
                    createHashMapFromQueryString(referrer);
                Log.d("SAMPLE", "Ymid is: " + referralmap.get("ymid"));
            }
        }
    }
}

我只想在安装应用程序时向服务器发送一些内容。 谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将接收器添加到清单中,以便您的应用知道您有收听广播的内容。像这样:

<receiver android:name="com.company.cool.SDK_Referrer" android:exported="true">
    <intent-filter>
      <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
  </receiver>