2016-09-17 6 views
2

私はアプリを提案したアプリを開発中です。ユーザーが自分のアプリを使ってアプリを正常にインストールすると、アプリで報酬を得る。 私はユーザーがインテントプレイストアのURLを使用してアプリを正常にインストールした場合のブロードキャストの取得

...だから、いくつかの完全な例や他の提案を得ることで私を助けてください...
これを提供していますが、成功を取得していない受信機の「com.android.vending.INSTALL_REFERRER」アクションに関する情報を取得しています

この私のコードです...

ボタンクリックイベント

btnInstallApp.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent goToMarket = new Intent(Intent.ACTION_VIEW) 
        .setData(Uri.parse("market://details?id=com.idea.backup.smscontacts&referrer=tecksky")); 
      startActivity(goToMarket); 
     } 
    }); 

たManifest.xml

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

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".activity.MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver 
     android:name=".receiver.ReferrerCatcher" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER"></action> 
     </intent-filter> 
    </receiver> 
</application> 

</manifest> 

ReferrerCatcher.java

public class ReferrerCatcher extends BroadcastReceiver { 
private static String referrer = ""; 

@Override 
public void onReceive(Context context, Intent intent) { 
    referrer = ""; 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     referrer = extras.getString("referrer"); 
    } 
    Log.e("REFERRER : ", referrer); 
    } 
} 
+0

"私は情報を取得しています"と "成功しませんでした"と正確には何を意味していますか? 'ReferrerCatcher.onReceive'は呼ばれていますか? – gus27

答えて

0

ちょっとだけ、それは私も私のアプリでこれを実装している作品と完璧ので、私はあなたに紹介コードを掲示しています私のためにどのように動作するかを参照してください。

参照を受信するための別のクラスを作成します。

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import com.google.android.gms.analytics.CampaignTrackingReceiver; 

public class CustomReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
      new CampaignTrackingReceiver().onReceive(context, intent); 
      Bundle b= intent.getExtras(); 
      String referrerString = b.getString("referrer"); 
      // Log.e("bundle", "bundle= " + referrerString+ " " + referrerString.substring(11, referrerString.length())); 
      SharedPrefManager.setPrefVal(context, Constants.REFERRAL, referrerString.substring(11, referrerString.length()));    

    } 
} 

このクラスを使用すると、私はSharedPrefrenceでそれを保存していますようにどこかに保存する必要があり、紹介を受け取ることになります。このブロードキャストは、ユーザーがプレイストアからアプリをインストールするときに受信し、"referrer"には、このユーザーにこのアプリをダウンロードするリンクを渡した後、その参照元キーからアプリを参照したユーザーに利益をもたらす情報が表示されます。

マニフェストファイルでは、あなたが、その後何か

https://play.google.com/store/apps/details?id=com.example.app&referrer=utm_source=123456ref

のような店をプレイするためにヒットする特定のユーザーのために、サーバー側からのリンクを取得するバックエンドから受信タグ

<receiver 
      android:name="gcm.CustomReceiver" 
      android:exported="true"> 
      <intent-filter> 
       <action android:name="com.android.vending.INSTALL_REFERRER" /> 
      </intent-filter> 
     </receiver> 

を追加

基本的に受信者クラスでは、このutm_sourceを選択しているので、ユーザーあなたのアプリにサインアップします。つまり、どのIDからIDが生成されたかを知ることができます。

希望すると、これが役立ちます。これを試して私に知らせてください。

+0

こんにちは、私はあなたのソリューションを使用しようとしましたが、アプリケーションが起動すると参照文字列を読み取ることができません。私は 'PreferenceManager.getDefaultSharedPreferences()'を使います。あなたが使用している 'SharedPrefManager'とは何ですか? – 2ndGAB

+0

ここでsharedprefmanagerは、共有設定で情報を保存するためのカスタムクラスです。あなたは自分で書くことができます。 –

+0

大丈夫、私はそれをどこか別の場所で見た。ここでのポイントは、アプリケーション( 'restrictedContext')とは異なるコンテキストを参照するため、' 'getDefaultSharedPreferences()' 'をアプリケーションで読み戻すことができないようにすることです。 – 2ndGAB

関連する問題