すべての環境ですべての通知を受け取るという問題があります。現在、すべてのビルドのパッケージ名は同じです。そのため、デバイスに同時にインストールできるビルドは 1 つだけです。しかし、すべてのビルドを対象とする通知を受け取ります (正しいビルドまたは他のビルドのいずれかである可能性があります)。
登録IDを調べましたが、常に同じです。問題は、おそらくすべてのアプリが同じパッケージ名を共有していることですか?
登録に表示されるパラメーターは次のとおりです。
マニフェストのブロードキャスト レシーバー:
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.company.product" /> </intent-filter> <intent-filter> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="com.company.product" /> </intent-filter> </receiver>
権限:
<permission android:name="com.company.product.permission.C2D_MESSAGE"
android:protectionLevel="signature"/> <uses-permission android:name="com.company.product.permission.C2D_MESSAGE"/>登録方法:
Intent registrationIntent = new Intent(REQUEST_REGISTRATION_INTENT); registrationIntent.setPackage(GSF_PACKAGE); registrationIntent.putExtra(EXTRA_APPLICATION_PENDING_INTENT, PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(), 0)); registrationIntent.putExtra(EXTRA_SENDER, "app@company.com"); context.startService(registrationIntent);
実行中のアプリ (環境) を対象とした通知のみを受け取るには、正確に何を変更する必要がありますか?
さらに、問題がパッケージ名である場合、その理由が正確にはわかりません。デバッグバージョンでログインしたとしましょう。パッケージ名 x で登録します。ここで、パッケージ名 x を使用してプロダクションに登録します。同じパッケージ名で以前に登録されているため、デバッグからの通知を受け取りますか? これは、デバッグ バージョンを使用または登録したことがない場合、本番アプリを使用してデバッグ環境から通知を受け取ることはないということですか?