Android-接收推送通知并显示它-不太理解
好的,所以我终于得到了注册推送通知设备的设置。我发现此代码用于接收新通知并显示它。问题是我不知道它会去哪里。我对Android编程相当陌生,因此非常感谢您的帮助。 下面我有一个名为GCMService的服务类Android-接收推送通知并显示它-不太理解,android,android-intent,push-notification,google-cloud-messaging,Android,Android Intent,Push Notification,Google Cloud Messaging,好的,所以我终于得到了注册推送通知设备的设置。我发现此代码用于接收新通知并显示它。问题是我不知道它会去哪里。我对Android编程相当陌生,因此非常感谢您的帮助。 下面我有一个名为GCMService的服务类 import android.content.Context; import android.content.Intent; import android.util.Log; import com.google.android.gcm.GCMBaseIntentService; pub
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.android.gcm.GCMBaseIntentService;
public class GCMService extends GCMBaseIntentService {
private static final String TAG = "GCMService";
public GCMService() {
super();
}
@Override
protected void onRegistered(Context context, String regId) {
Log.i(TAG, "Device registered: regId= " + regId);
}
@Override
protected void onUnregistered(Context context, String regId) {
Log.i(TAG, "Device unregistered");
}
@Override
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
}
@Override
public void onError(Context context, String errorId) {
Log.i(TAG, "Received error: " + errorId);
}
@Override
protected boolean onRecoverableError(Context context, String errorId) {
Log.i(TAG, "Received recoverable error: " + errorId);
return super.onRecoverableError(context, errorId);
}
}
下面的函数与上面的我的类相关,在哪里接收新消息?
private static void generateNotification(Context context, String message) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, LauncherActivity.class);
PendingIntent pintent = PendingIntent.getActivity(context, 0, intent,
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(1, notification);
}
我想出来了。我终于找到了一个非常好的工作项目,您可以学习代码并理解它。我花了好几天的时间在谷歌上搜索,才找到了一些东西,这些东西不仅是这里的一块,那里的一块,而是整个项目。我想我会很乐意把它贴出来,以防别人会用
使用下面的代码即可正常工作:
@Override
public void onDeletedMessages() {
sendNotification("Message Deleted On server");
super.onDeletedMessages();
}
@Override
public void onMessageReceived(String from, Bundle data) {
sendNotification("Received: " + data.getString("message"));
super.onMessageReceived(from, data);
}
@Override
public void onMessageSent(String msgId) {
sendNotification("Message Sent: " + msgId);
super.onMessageSent(msgId);
}
@Override
public void onSendError(String msgId, String error) {
sendNotification("Message Sent Error: " + msgId + "Error: " + error);
super.onSendError(msgId, error);
}
private void sendNotification(String msg) {
Intent intent = new Intent(this, MessageView.class);
intent.putExtra("Message", msg);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.logo_y)
.setContentTitle("CCD Message").setContentText(msg)
.setAutoCancel(true).setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
您是否尝试过在通知到达的位置调用通知generate-GCMService.onMessage()?我想这可能是需要的,但是我是否在onMessage中调用generateNotification()?参数呢?e、 g.生成化(此处某物,此处某物);我会放什么?哦,没关系,哇,我想我明白了。我开始觉得自己有点迟钝了,不管使用哪种语言,函数都应该是一样的。我试试看。这就是当你复制粘贴的时候发生的事情。英雄联盟