2016-07-28 6 views
1

Google Playアプリ内課金APIを使用してAndroidアプリでアプリ内購入を有効にしたい3. GoogleがリリースしたTrivialDriveのサンプルアプリケーションAndroid Studioのマニフェストファイルにアプリ内購入のBroadcastReceiverを正しく登録する方法

// Important: Dynamically register for broadcast messages about updated purchases. 
// We register the receiver here instead of as a <receiver> in the Manifest 
// because we always call getPurchases() at startup, so therefore we can ignore 
// any broadcasts sent while the app isn't running. 
// Note: registering this listener in an Activity is a bad idea, but is done here 
// because this is a SAMPLE. Regardless, the receiver must be registered after 
// IabHelper is setup, but before first call to getPurchases(). 
mBroadcastReceiver = new IabBroadcastReceiver(UpgradeActivity.this); 
IntentFilter broadcastFilter = new IntentFilter(IabBroadcastReceiver.ACTION); 
registerReceiver(mBroadcastReceiver, broadcastFilter); 

これはすべて次のJavaコードのセクションです。しかし、AndroidManifest.xmlファイルにリスナーを登録する方法や、Javaコードで登録されたリスナーを参照する方法についての適切な例はまだ見ていません。アプリ内課金用に設計された、具体的にはの1つではなく、アプリ内課金に関連しない登録済みリスナーの他の例を見てきました。どうすればいい?

私はマニフェストの部分はこのようなものに見えるだろうと、おそらく間違って、想定しています。私はマニフェストに登録されたリスナーのためのJavaコードがどのように見えるか分からない

<!-- Include required permissions for Google Mobile Ads to run --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. --> 
<uses-permission android:name="com.android.vending.BILLING" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/logo" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Platform.AppCompat"> 

    <!-- This meta-data tag is required to use Google Play Services. --> 
    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

    <!-- Here is the relevant part. --> 
    <receiver android:name="package.path.to.IabBroadcastReceiver" 
     android:permission="android.permission.SOME_UNKNOWN_PERMISSION"> 
     <intent-filter> 
      <action android:name="android.intent.action.SOME_UNKNOWN_ACTION"/> 
     </intent-filter> 
    </receiver> 

    <!-- Place activities here. --> 
</application> 

を。

ご協力いただきありがとうございます。

答えて

0

あなたが受信機

<receiver 
     android:name=".Util.mBroadcastReceiver" 
     android:exported="false"> 
     <intent-filter> 
      <action android:name="com.parse.push.intent.RECEIVE" /> 
      <action android:name="com.parse.push.intent.DELETE" /> 
      <action android:name="com.parse.push.intent.OPEN" /> 
     </intent-filter> 
    </receiver> 

を作成し、クラスを作成するべきである:

public class mBroadcastReceiver extends ParsePushBroadcastReceiver { 

@Override 
public void onPushOpen(Context context, Intent intent) { 
     Intent i = new Intent(context, MainActivity.class); 
     i.putExtras(intent.getExtras()); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
} 

}

を権限を忘れないでください:用

<permission 
    android:name="your_package.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="your_package.permission.C2D_MESSAGE" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
+0

感謝を素早い返信。私は今これを試しています。私は、ParsePushBroadcastReceiverのソースコードを捜す必要がありました。しかし、そのパッケージには、見つけられないTaskというクラスへの参照があり、それがなければコンパイルされません。タスククラスはどこにありますか? AbstractQueryControllerとCacheQueryControllerで参照されています。 – user3188777

+0

心配しないでください。私はボルトフレームワークでそれを見つけました。 – user3188777

+0

これまでは、上記のコードを実行するためにparse、bolt、okhttp、およびokioフレームワークをインポートしましたが、依然として依存関係が壊れていてコンパイルされません。無数の輸入を必要としないこれを行うための良い方法はありませんか? – user3188777

関連する問題