Магазин Google Play меняет данные реферера на com.android.chrome?

Я новичок в концепции реферера.

Я написал код, цель которого состоит в том, чтобы Google PlayStore отправлял данные реферера в виде трансляции в мое приложение после установки, которые я улавливаю и обрабатываю соответствующим образом. Проблема в том, что данные, которые я запрашиваю у Google, отличаются от данных, которые Google на самом деле отправляет мне.

Я использую следующий код для создания ссылки:

final String url = "intent://details?id=com.myapp&url="a dummy url"&referrer="+referrer+"#Intent;scheme=market;action=android.intent.action.VIEW;package=com.myapp;S.referrer="+referrer+";end";

Здесь реферер = ‹правильная base64 закодированная строка>

ПРИМЕЧАНИЕ.
Первоначальный фиктивный URL мне не нужен. Меня интересует откат к Google, чтобы установить приложение. Предполагается, что на устройстве не установлено приложение, поэтому это должно сработать. Откат выполняется правильно, и меня перенаправляют в Google PlayStore, откуда я устанавливаю приложение, тогда данные реферера транслируются в мое приложение. Я ловлю данные реферера и показываю их в виде тоста в производственной сборке.

Что я ожидаю увидеть в данных тоста: ‹мои base64 закодированные, которые я отправил>
Что я вижу:" com.android.chrome "

Почему это происходит?


person Utsav Gupta    schedule 28.09.2016    source источник


Ответы (1)


Потратив слишком много времени. Я смог понять, что происходит. Если не указано ни одного реферера, Chrome присоединяет свой собственный реферер, значение которого - com.android.chrome. То, как я прикреплял реферер, было неправильным, поэтому был выбран реферер хрома по умолчанию. Исправление в последней части

изменить это

...; пакет = com.myapp; S.referrer = "+ реферер +"; конец ";

to

...; пакет = com.myapp & referrer = "+ реферер +"; конец ";

Надеюсь, это поможет другим. Весь мой день был проведен в этом.

person Utsav Gupta    schedule 28.09.2016
comment
Для меня это приводит к тому, что приложение Play Store открывается и отображает белый экран. Посмотрев на Device Monitor, я вижу эту запись: 03-14 16:45:30.931: I/ActivityManager(1289): START u0 {act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=market://details?id=com.some.app.name&referrer=extra1&referrer=com.android.chrome flg=0x10000000 pkg=com.android.vending cmp=com.android.vending/com.google.android.finsky.activities.LaunchUrlHandlerActivity} from uid 10034 pid 19319 on display 0 Вы можете видеть, что в этом случае он дважды добавил referrer к URI. - person asciimo; 15.03.2017
comment
Примечание для будущих искателей приключений: добавление &referer в пакет имеет противоречивую историю, задокументированную в ряде отчетов об ошибках Chromium. Решением было добавить дополнительный S.market_referrer к intent:// URI, который был запущен в сентябре 2016 года. Вот исправленный комментарий. - person asciimo; 15.03.2017