我的Android应用程序使用Urbaairship从服务器接收推送消息,我添加了最近的Urbanairaship库。 jar稳定版本4.0.2。我已经根据Urbanairship文档添加了所有代码,以进行集成,这对于新创建的示例项目效果很好,但在我现有的项目中却无法正常工作。我也从Google控制台和API密钥获取了projectId,并将其添加到Urbanairship应用程序设置中。向资产文件夹中的airship.config文件添加了开发密钥。
问题是我无法在设备的通知栏中看到即将到来的通知,但是我可以在logCat中看到记录的通知。
我做了很多研究案例的人是:
1) It shows notification with/without IntentReceiver in SampleApplication I created.
2) It shows notification without IntentReceiver even using custom Notifications builder in SampleApplication I created.
3) It won't show any notification until i create custom notification in my Projects Application class before registering IntentRevceiver.
预先感谢。
任何帮助都会得到赞赏。
最佳答案
最终没有得到我正在寻找的任何答案。因此,我自己诊断出问题,并遇到图片,Urbaairship没有在IntentReceiver中渲染它收到的推送,因为有些人没有考虑到这些消息本身。
我们可以使用urbanairship以及其他平台(例如SNS Amazon)发送推送消息。当我们从其他平台收到消息时,urbaairship不会渲染它,因为(消息中有某种o标识符,可以区分It消息与其他push消息)它知道接收到的消息是否属于It,如果不是属于它不会渲染它,并以默认格式显示它们以进行推送接收。
在上述场景中,我得出的结论是,某些Urbanairhip如何不考虑来自其本身的urbanairship的消息,在Google控制台或urbanairship上创建的应用程序存在一些问题...试图对其进行修复。
我发现的解决方法是在市区飞艇起飞后立即在Application类中使用CustomPushNotificationBuilder创建自定义的推送通知。
CustomPushNotificationBuilder nb = new CustomPushNotificationBuilder();
nb.statusBarIconDrawableId = R.drawable.app_icon_notification;//custom status bar icon
nb.layout = R.layout.notification;
nb.layoutIconDrawableId = R.drawable.app_icon_notification;//custom layout icon
nb.layoutIconId = R.id.icon;
nb.layoutSubjectId = R.id.subject;
nb.layoutMessageId = R.id.message;
// customize the sound played when a push is received
nb.soundUri = Uri.parse("android.resource://"+this.getPackageName()+"/" +R.raw.cat);
PushManager.shared().setNotificationBuilder(nb);
希望这可以帮助您朝正确的方向努力。