0

私のサーバーは、パラメーターをリダイレクトして Google Play ストアに渡すリンクを作成します。

サーバーで受信した SMS。 https://goo.gl/ {UNIQUE_ID}

クリックすると、実際には下のこの URL をクリックします。 http://www.mycompany.com/env=dev&token=123&id=456

上記のリンクは、Google Play ストアに移動して、アプリに含まれるパラメータを示しています。 https://play.google.com/store/apps/details?id=com.mycompany.app&referrer=123,456

ここに質問があります;(初回インストール) 上記のリンクで開いたアプリをインストールするときに、最初に「token」、「id」パラメーターをアプリに渡したいので、ログインをスキップします。これらのパラメーターはユーザーに固有であるため、サーバーによって作成されます。

「com.android.vending.INSTALL_REFERRER」をセットアップしました。期待どおりにパラメーターを受け取ることができますが、すべてのデバイスで一貫性がなく、大きな遅延に直面する可能性があります。

 <receiver
        android:name=".GooglePlayReceiver"
        android:exported="true"
        android:permission="android.permission.INSTALL_PACKAGES">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

私の GooglePlayReceiver Broadcastreceiver は;

public class GooglePlayReceiver extends BroadcastReceiver {

Context mContext;
String purchaseId = null;

public GooglePlayReceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {
    try {
        mContext = context;
        Bundle extras = intent.getExtras();
        String verificationCode = null;
        String phoneNumber = null;
        if (extras != null) {
            String code = extras.getString("referrer");
            String[] strArr = code != null ? code.split(",") : new String[0];
            token = strArr[0];
            id = strArr[1];
        }
    } catch (Exception ex) {
    }
}}

このフローは、一部のデバイスで大きな遅延が発生します。たとえば、Google Pixel 2 は遅延なくすぐにパラメーターをフェッチしますが、Samsung Galaxy S7 は 5 ~ 10 秒の遅延があります。

これを解決するには?

4

1 に答える 1