[英]Android: Push Notification has no Sound/Vibration/Light
收到通知时,我没有声音,振动或光线。 有人可以告诉我我错过了什么吗?
我还有一些其他问题:
1.)我只在应用程序打开时获取指定的图标。 当应用程序关闭时,我得到了android徽标图标(我想那是因为我还没有定义应用程序图标)。
2.)仅在应用程序打开时显示自动收报机文本。
3.)当应用程序打开时,我没有得到内容文本,只有内容标题。
解决方案:这是因为我使用com.google.android.gms:play-services-gcm:8.4.0
而不是之前的版本。
确保在服务器上发送的通知数组只包含键/值对e = 0,同时在数据数组中发送消息信息。
这个问题在这里已经有了一个很好的答案: 将Google Play服务更新为自己显示的8.4.0推送通知
这是我的来源:
public class MyGcmListenerService extends GcmListenerService {
private final static String TAG = "GCM_Listener";
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
Log.d(TAG, "From: " + from + " (" + message);
// Sets an ID for the notification
SharedPreferences sharedPreferences = getSharedPreferences(getString(R.string.sharedPreferenceStore_default), Context.MODE_PRIVATE);
int mNotificationId = sharedPreferences.getInt("id_notification", 0);
mNotificationId++;
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.all_picks_made_indicator)
.setAutoCancel(true)
.setContentTitle("Product - " + mNotificationId)
.setContentText(message)
.setTicker("Product Notification received");
// Because clicking the notification opens a new ("special") activity, there's no need to create an artificial back stack.
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, DetectLoginActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
// Gets an instance of the NotificationManager service
NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Builds the notification and issues it.
Notification notification = mBuilder.build();
notification.defaults = Notification.DEFAULT_ALL;
mNotifyMgr.notify(mNotificationId, notification);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("id_notification", mNotificationId);
editor.commit();
}
}
推送通知的自定义声音
notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.pop);
在你的代码更改
Notification notification = mBuilder.build();
notification.defaults = Notification.DEFAULT_ALL;
mNotifyMgr.notify(mNotificationId, notification);
至。
notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.pop);
notification.defaults |= Notification.DEFAULT_VIBRATE;
mBuilder.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000});
mBuilder.setLights(getResources().getColor(R.color.mainColor), 1000, 1000);
您可以在构建器对象上设置颜色和振动
你错过了这样的事情:
long[] pattern = new long[]{0, 100, 200, 100}; //two short beeps
mBuilder.setVibrate(pattern);
Notification note = mBuilder.build();
note.vibrate = pattern;
这会给你振动。 看看灯光,我手头没有那个代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.