Onesignal GDPR更改未注册设备

时间:2018-05-23 06:14:57

标签: android firebase firebase-cloud-messaging onesignal

当我尝试以下步骤进行Onesignal新的GDPR更改时,Onesignal没有注册该设备。我不知道是否正确。

第1步:在应用程序onCreate

if(!OneSignal.userProvidedPrivacyConsent()) {
 OneSignal.setRequiresUserPrivacyConsent(true);
}

第2步:当用户接受条款

时,我将设置provideUserConsent(true)

第3步:用户接受条款后我将startInit()OneSignal方法

 OneSignal.startInit(this)
     .setNotificationReceivedHandler(new OneSignalNotificationReceivedHandler())
     .setNotificationOpenedHandler(new OneSignalNotificationOpenedHandler())
     .init();

按照上述步骤进行后,我将收到这样的日志消息

  

05-23 11:19:21.790 22460-22460 / com.example.app V / OneSignal:OneSignal   SDK初始化延迟,用户隐私同意设置为必需   对于这个应用程序

     

05-23 11:19:21.795 22460-22460 / com.example.app   W / OneSignal:方法idsAvailable()在用户提供之前被调用   隐私同意。您的应用程序设置为要求用户的隐私   在初始化OneSignal SDK之前获得同意。请确保   用户在调用此方法之前已提供同意。你可以检查一下   最新的OneSignal同意状态通过电话   OneSignal.userProvidedPrivacyConsent()

在OneSignal Dashboard中收到这样的消息

  

Google Play服务库初始化错误。检查   插件冲突并确保" com.google.android.gms.version"是   在AndroidManifest.xml中。检查logcat以获取更多详细信息。

但我在AndroidManifest.xml中包含了所有必要的细节

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

1 个答案:

答案 0 :(得分:3)

肯定有错误。

在初始化OneSignal之前必须调用

setRequiresUserPrivacyConsent(true)

示例:

public void onCreate() {
    super.onCreate();
    // Prevents OneSignal from sending any data until provideUserConsent` is called.
    OneSignal.setRequiresUserPrivacyConsent(true);

    // OneSignal Initialization
    OneSignal.startInit(this)
        .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
        .unsubscribeWhenNotificationsAreDisabled(true)
        .init();
}

public void onUserTappedProvidePrivacyConsent(View v) {
    // will initialize the OneSignal SDK and enable push notifications
    OneSignal.provideUserConsent(true);
}

https://documentation.onesignal.com/docs/android-native-sdk#section--setrequiresuserprivacyconsent-