我在Unity和iOS上非常有经验,我可以将Unity应用程序部署到Android。但我对本机Android内容一无所知。
我的问题是关于接收GCM消息并在Android应用程序处于后台时显示通知。我实现了它,当应用程序处于前台时它工作正常,但当应用程序处于后台时我的GCM消息监听器没有被触发,我无法显示通知。
我使用此插件接收GCM消息:https://github.com/kskkbys/unity-gcm 我用它来显示通知:https://www.assetstore.unity3d.com/en/#!/content/9484
我试图联系这些插件的作者,但他们没有回复很长时间......
答案 0 :(得分:1)
我使用" Android Native"解决了我的问题来自资产商店中StansAssets的插件。通过他的实现,Android设备在云消息到达时显示通知,即使应用程序在后台。点击通知会打开应用程序。
答案 1 :(得分:0)
您可能会发现事件总线的概念很有趣。我会试着向你展示一个例子,虽然我之前从未使用过它。我将使用Toast消息作为替代品,因为这是我很满意的。
这个想法很简单,因为任何对象(activity
)都可以“乘坐公共汽车”:
bus.register(this)
当总线发出“嘟嘟”声(发出事件)时,您需要使用订阅者方法:
public void onEvent(NotificationEvent event) {
Toast.makeText(this,
event.payload.getString("message"),
LENGTH_SHORT)
.show();
}
当物体需要下车时
bus.unregister(this);
另外,实际上让公交车“发出嘟嘟声”:
NotificationEvent event = new NotificationEvent(bundle);
bus.post(event);
这会触发在总线上有座位的每个对象中调用onEvent(NotificationEvent event)
方法。您可以添加不同的订阅者方法(例如onEvent(LocationEvent event)
),只有在发出相同类型的事件时才会运行这些方法bus.post(new LocationEvent())
对于可以向总线注册的对象数量没有限制。
通过少量修改,我认为没有理由不能将其改编为通知方法,并根据您的程序触发事件。