问题描述
我正在尝试向我的移动原生聊天应用添加推送通知。我正在尝试使用 Onesignal。
我可以发送手动推送通知,所以我认为gradle部分没问题
不推荐使用 idsAvaiable 方法,我开始寻找如何获取 userId。
OSPermissionSubscriptionState status = Onesignal.getPermissionSubscriptionState();
String userId = status.getSubscriptionStatus().getUserId();
无法解析符号“OSPermissionSubscriptionState”
解决方法
根本原因
从 OneSignal API 4.0.0
中删除了许多 API,包括 OSPermissionSubscriptionState
。
解决方案 1
OSDeviceState device = OneSignal.getDeviceState();
String userId = device.getUserId();
解决方案 2
使用OneSignal.addSubscriptionObserver()
OneSignal.addSubscriptionObserver(new OSSubscriptionObserver() {
@Override
public void onOSSubscriptionChanged(OSSubscriptionStateChanges stateChanges) {
if (!stateChanges.getFrom().isSubscribed() && stateChanges.getTo().isSubscribed()) {
// Get user id
String userId = stateChanges.getTo().getUserId();
}
}
});
有关详细信息,请参阅更改日志 here。