Tôi đang làm việc trên ứng dụng Android đầu tiên của mình để sử dụng dịch vụ Nhắn tin qua đám mây của Google (GCM) cho thông báo đẩy. Tôi đã đến mức tôi có thể gửi tin nhắn thành công từ ứng dụng máy chủ của mình và đăng nhập nội dung của thư trong sự kiện onMessage trong lớp GCMIntentService của tôi trên ứng dụng khách. Tuy nhiên, tôi không thấy bất kỳ dấu hiệu trực quan nào trên thiết bị nhận được tin nhắn. Tôi đã mong đợi thông báo xuất hiện trong danh sách thông báo kéo xuống trên điện thoại, giống như trên iPhone. Điều này có phải được mã hóa theo cách thủ công không? Cũng có phương pháp phổ biến để hiển thị thông báo bất kể hoạt động nào hiện đang hoạt động và nếu ứng dụng không hoạt động trong nền? Bất kỳ trợ giúp nào được đánh giá cao.Android - Thông báo đẩy GCM không xuất hiện trong danh sách thông báo
Trả lời
Mã này sẽ tạo thông báo trên thanh hệ thống android ở đầu màn hình. Mã này sẽ tạo ra một ý định mới sẽ hướng người dùng đến "Home.class" sau khi nhấp vào thông báo ở thanh trên cùng. Nếu bạn muốn làm điều gì đó cụ thể dựa trên hoạt động hiện tại, bạn có thể gửi yêu cầu phát sóng từ GCMIntentService đến các hoạt động khác của bạn.
Intent notificationIntent=new Intent(context, Home.class);
generateNotification(context, message, notificationIntent);
private static void generateNotification(Context context, String message, Intent notificationIntent) {
int icon = R.drawable.icon;
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);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, notification);
}
Lưu ý rằng ví dụ này sử dụng tài nguyên trong R.drawable và R.String cần phải có để làm việc nhưng nó sẽ cung cấp cho bạn ý tưởng. Xem thông tin này để biết thêm thông tin về thông báo trạng thái http://developer.android.com/guide/topics/ui/notifiers/index.html và thông tin này về các thiết bị phát sóng. http://developer.android.com/reference/android/content/BroadcastReceiver.html
Nếu bạn đang sử dụng GcmListenerService bạn có thể sử dụng mã này, thêm vào onMessageReceived của bạn sendNotification()
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
sendNotification(message);
}
private void sendNotification(String message) {
Intent intent = new Intent(this, YOURCLASS.class);
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.ic_park_notification)
.setContentTitle("Ppillo Message")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
- 1. Thông báo đẩy GCM với Asp.Net
- 2. Thông báo đẩy Android
- 3. rollback/hủy thông báo android-gcm
- 4. Huy hiệu thông báo đẩy không xuất hiện
- 5. Thông báo đẩy XMPP (Openfire) Android
- 6. Thông báo đẩy GCM gây 502 Bad Gateway
- 7. Android gửi thông báo đẩy thông qua .net webservices
- 8. Dữ liệu thông báo đẩy truy xuất
- 9. Xử lý thông báo đẩy
- 10. Thông báo đẩy trên Android: Google GCM so với Amazon SNS?
- 11. thông báo hộp danh sách
- 12. Thông báo đẩy trong PHP
- 13. Thông báo đẩy GCM cho Android luôn hiển thị thông điệp cũ. Ý định nhận được không chính xác
- 14. Gửi thông báo đẩy android thông qua node.js
- 15. Thông báo đẩy Android GCM cho ứng dụng bản địa hóa
- 16. Nhận dữ liệu từ thông báo GCM
- 17. Thông báo Đẩy Trong Web Di động
- 18. Nhận thông báo hiện tại android
- 19. Đăng ký Thông báo Đẩy
- 20. Cách tạo máy chủ Thông báo đẩy Android trong PHP
- 21. Thông báo đẩy Gmail trong Rails
- 22. Thông báo đẩy cho cả android và iPhone
- 23. Đẩy Thông báo bằng máy chủ Rails
- 24. Thông báo về đèn và đẩy
- 25. Thông báo đẩy trong ứng dụng Iphone
- 26. Gem cho thông báo đẩy cho Android và iOS
- 27. Có dịch vụ thông báo đẩy nào trong Android như Dịch vụ thông báo của Apple Push không?
- 28. Thông báo đẩy trên iPhone iOS sẽ xuất hiện trên sản phẩm không gửi
- 29. Cách nhận thông báo khi thông báo được thông báo
- 30. Thực hiện thông báo Đẩy cho iOS (Phía máy chủ)
Đó là tuyệt vời, cảm ơn nhiều. –
Xin chào, tôi đã sử dụng plugin này https://github.com/marknutter/GCM-Cordova và làm theo tất cả các hướng dẫn. tuy nhiên, tôi chỉ có thể nhận tin nhắn khi ở trong ứng dụng, nhưng không thể tải ứng dụng để hiển thị thông báo trong khu vực thông báo của android. xin vui lòng tư vấn cho. Tôi sử dụng plugin này khiến tôi sử dụng phonegap @Zachary Moshansky –
Tôi xin lỗi nhưng tôi chưa bao giờ sử dụng Phonegap và không thể nhận xét về cách làm cho thông báo hoạt động với nó –