BRD*_*oid 1 android push-notification google-cloud-messaging onesignal android-push-notification
我正在Android应用程序中实现推送通知.我们正在使用OneSignal发送推送通知.我们有一个API可以跟踪所有设备和API,决定哪些设备发送推送通知.
API请求OneSignal和OneSignal向设备发送通知.
在Android中,我使用以下代码获取设备令牌,该代码保存在API上,并使用它来发送推送通知.
public String getGCMTokenForPushNotification(){
String token = "";
try {
InstanceID instanceID = InstanceID.getInstance(this);
token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Log.i(TAG, "GCM Registration Token: " + token);
return token;
}catch (Exception e) {
Log.d(TAG, "Failed to complete token refresh", e);
}
return token;
}
Run Code Online (Sandbox Code Playgroud)
当Android应用程序在那里注册时,R.string.gcm_defaultSenderId是firebase上的SENDER ID.
截至目前,我已经在Android应用程序上设置了OneSignal
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OneSignal.startInit(this)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
}
Run Code Online (Sandbox Code Playgroud)
https://documentation.onesignal.com/docs/android-sdk-setup
如果API正在决定并在信号上初始化设备并发送推送通知.我不认为我会在Android应用程序上要求OneSignal设置.是对的吗?如果我从Android应用程序中删除OneSignal.我应该用什么来处理通知.
背后的原因是,截至目前我们正在使用OneSignal,将来如果我们更改提供商,我们不必在应用程序方面做任何事情.
是否有任何geniric方式来处理Android上的通知请.
谢谢您的帮助.[R
小智 5
是的,你不需要在客户端使用信号.你可以删除它.Onesignal文件说 - 实现GCM/FCM(谷歌),APNS(Apple)的可靠接口
所以基本上它使用GCM/FCM,理想情况下,如果你没有复杂的场景,你可以直接使用GCM/FCM.
回答你的问题你可以使用下面的东西接收推送通知,因为它最终只来自谷歌云
以下方法将为您提供信息
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
Log.d(TAG, "From: " + from);
Log.d(TAG, "Message: " + message);
if (from.startsWith("/topics/")) {
// message received from some topic.
} else {
// normal downstream message.
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您希望直接使用GCM文档,也可以使用以下文档实现GCM/FCM
但是你现在应该使用FCM,因为GCM现在已被弃用.所以在这里你去 FCM文档
归档时间: |
|
查看次数: |
964 次 |
最近记录: |