Android/Java:如何在新的 OneSignal 4.0.0 中获取 userId? 不推荐使用 idsAvailable 并且 getPermissionSubscriptionState 不起作用

问题描述

我通过添加 implementation 'com.onesignal:Onesignal:4.0.0' 升级了 onesignal,但现在有些代码不起作用。

已弃用的旧代码不再起作用:

        Onesignal.idsAvailable(new Onesignal.IdsAvailableHandler() {
            @Override
            public void idsAvailable(String userId,String registrationId) {


            }
        });

不起作用的新代码

        String userId = Onesignal .getPermissionSubscriptionState().getSubscriptionStatus().getUserId();

有什么想法吗?

解决方法

你必须安装这个:

https://documentation.onesignal.com/docs/android-sdk-setup

然后代码是这样的:

OSDeviceState deviceState = OneSignal.getDeviceState();
String userId = deviceState != null ? deviceState.getUserId() : null;