INSTALL_REFERRER не звонит при загрузке из play-store - PullRequest
1 голос
/ 20 марта 2019

BroadcastReceiver не вызывается после загрузки приложения. из play-store.

Однако он вызывается, когда я тестирую с adb.

am broadcast -a com.android.vending.INSTALL_REFERRER -n my.package/my.package.InstallReferrerReceiver --es "referrer" "utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name"

Работает очень хорошо, используя adb. Но при загрузке из play-store он не звонит.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="my.package">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:name="my.package.MyApplication"
        android:allowBackup="false"
        android:fullBackupContent="false"
        android:icon="@mipmap/logo"
        android:label="@string/app_name"
        android:supportsRtl="false"
        android:theme="@style/Theme.DesignDemo"
        android:usesCleartextTraffic="true"
        tools:replace="allowBackup, supportsRtl, label">

        <receiver
            android:name="my.package.InstallReferrerReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <service android:name="my.package.firebase.MyFirebaseMessagingServices">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

        <activity
            android:name="my.package.SplashActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

InstallReferrerReceiver.java

public class InstallReferrerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String referrer = intent.getStringExtra("referrer");
        if (!TextUtils.isEmpty(referrer)) {
            Logs.showLogE("onReceive, referrer = " + referrer);
        } else {
            Logs.showLogE("onReceive, referrer = null");
        }
        SharedPreffHelper.getInstance(context).saveReferralPreff(referrer);

        // Pass along to google
        AnalyticsReceiver receiver = new AnalyticsReceiver();
        receiver.onReceive(context, intent);
    }
}
...