2016-09-28 8 views
4

私は参照元の概念を初めて使用しています。Googleプレイストアが参照元データを「com.android.chrome」に変更していますか?

Google Playstoreには、インストール後にGoogleプレイストアがインストール後に参照元データをブロードキャストとして送信し、それに従って処理するというコードを書いています。問題は、私がGoogleにfirebackを求めているデータが、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 iが送信したエンコード> 私が見る何
: "com.android.chrome"

ですが、なぜでしょうか?

答えて

1

あまりにも多くの時間を費やした後。私は何が起こっていたのか把握することができました。 chromeを指定したリファラーがない場合は、値が "com.android.chrome"の独自の参照元が添付されます。 私が参照元をアタッチしていた方法は間違っていたため、クロムのデフォルトの参照元が取得されました。パッケージ= com.myapp; S.referrer = "+リファラ+";終わり ";

へ 補正は、最後の部分で

この

変更...です。 ..; package = com.myapp & referrer = "+ referrer +"; end ";

他人に役立つことを願っています。私の一日がこの時間に費やされました。

+0

私にとっては、Playストアアプリが開いて白い画面を表示します。デバイスモニタを見ると、次のレコードが表示されます。 '03-14 16:45:30.931:I/ActivityManager(1289):START u0 {act = android.intent.action.VIEW cat = [android.intent.category .BROWSABLE] dat = market://詳細?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' この場合、URIに 'referrer'を2回追加したことがわかります。 – asciimo

+0

将来の冒険者への注意:パッケージに '&referer'を追加することは、Chromiumのバグレポートの多くに記載されている論争の歴史を持っています。解決策は、2016年9月に公開された 'intent://' URIに余分な 'S.market_referrer'を追加することでした。ここには「固定のコメント」(https://bugs.chromium.org/p/)がありますクロム/ issues/detail?id = 459711#c32)。 – asciimo

関連する問題