私の英語のために申し訳ありません。私は通知のためにGCMを使用します、サーバーはjsonを使用します。GCMフォームthis。 問題:アプリが開いているときに、通知があり、すべての意図がうまく処理され、余分な作業がうまくいっています。しかし、アプリケーションが閉じられ、私は通知を得るとき、私はこの通知からアプリを起動するスタンダードアクティビティをクリックしたとき(私が設定したアクティビティではない)これは、アンドロイドが閉じている場合、アンドロイドが独自の通知を作成し、 enotherの意図と活動については、彼はアプリでstandart活動を開きます。「プラットフォームGCMによる通知メッセージのパラメータ」
<intent-filter>
<action android:name="OPEN_ACTIVITY_1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Qestion:?アンドロイドは独自のプッシュを作成するときに、私はputExtra
を使用傾ける方法(通知のための私のクラスを使用しない)この問題を解決するには、このような何かをサーバーclick_action
から送信する必要があり、マニフェストを必要としています
UPD: クラス通知(問題ないここ)を作成します。
public class GcmMessageHandler extends GcmListenerService {
static int count = 0;
@Override
public void onMessageReceived(String from, Bundle data) {
String name = notification.getString("title");
String message = notification.getString("body");
Resources res = ctx.getResources();
PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
wl.acquire(15000);
NotificationCompat.Builder mBuilder;
mBuilder = new NotificationCompat.Builder(ctx);
mBuilder.setSmallIcon(R.drawable.notification);
mBuilder.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.icon));
mBuilder.setVibrate(new long[]{1000, 1000});
mBuilder.setTicker(name + ":" + message);
mBuilder.setContentText(message);
mBuilder.setContentTitle(name);
mBuilder.setAutoCancel(true);
mBuilder.setDefaults(Notification.DEFAULT_ALL);
mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(message));
Intent i = new Intent(getApplicationContext(), Activity2.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
ctx,
count,
i,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager myNotificationManager = (NotificationManager)
ctx.getSystemService(ctx.NOTIFICATION_SERVICE);
myNotificationManager.notify(count, mBuilder.build());
}
}
UPDマニフェスト(私は許可し、GCMを使用)
<!-- GCM -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<permission android:name="myapp.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="myapp.permission.C2D_MESSAGE" />
<!-- GCM END -->
<!-- GCM -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="myapp" />
</intent-filter>
</receiver>
<service android:name="push.GcmMessageHandler"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- GCM -->
あなたのお返事ありがとうございます!私は自分のqestionを更新します。プッシュ作業のためのクラスは、アプリケーションが閉じられているときにアプリケーションが閉じられているときのみ開かれます。 'Activity2.class'は開いていません。そして、gcmは活動や意図を見ることなく、エクストラを置く。私は、アプリケーションが閉じられたときに 'putExtra'をどのように使うのか分かりません。 – b1065579
上記の権限を追加しましたか?まだOKでない場合は –
です。あなたのAndroidManifest.xmlのコードを投稿してください。 –