第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" />
答案 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-