Единый сигнал GDPR изменяется без регистрации устройства - PullRequest
0 голосов
/ 23 мая 2018

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 я получаю сообщение, подобное этому

Ошибка инициализации библиотеки служб 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 голосов
/ 25 мая 2018

Должно быть, произошла ошибка.

setRequiresUserPrivacyConsent(true) необходимо вызвать до инициализации OneSignal.

Пример:

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-

...