Поэтому с этим очень сложно что-либо сделать. Я хочу знать, не дал ли пользователь согласия, и в этом случае закройте приложение. И тогда в следующий раз, когда приложение откроется, форма должна появиться немедленно. Однако другая проблема заключается в том, что когда пользователь выбирает что-то в форме и подтверждает согласие, в следующий раз, когда форма открывается снова, настройки сбрасываются (как если бы форма никогда не сохранялась). Другая проблема заключается в том, что практически невозможно, чтобы пользователь выбрал правильные вещи для показа рекламы, и в большинстве случаев пользователь получит бесплатное приложение без какой-либо рекламы (поскольку статус ПОЛУЧЕНО не говорит о том, дал ли пользователь согласие или нет). Также я не могу получить то, что выбрал пользователь (действительно ли мне нужно заглядывать в общие настройки, чтобы получить эту информацию? В целом, этот UMP работает очень странно, или, может быть, я реализовал его неправильно? Возможно, скоро будут выпущены какие-либо улучшения ? Использование реализации 'com.google.android.ump:user-messaging-platform:2.1.0'
Также кажется, что пользователь уже дал согласие, а настройки Admob изменены с личных неличной рекламы для мое приложение, то пользователь все равно будет получать персональную рекламу.
Это код:
Код: Выделить всё
ConsentRequestParameters params = new ConsentRequestParameters
.Builder()
.setTagForUnderAgeOfConsent(false)
.build();
ConsentInformation consentInformation;
consentInformation = UserMessagingPlatform.getConsentInformation(this.getApplicationContext());
consentInformation.requestConsentInfoUpdate(
(Activity) this,
params,
new ConsentInformation.OnConsentInfoUpdateSuccessListener() {
@Override
public void onConsentInfoUpdateSuccess() {
// The consent information state was updated.
// You are now ready to check if a form is available.
if (consentInformation.isConsentFormAvailable()) {
// Loads a consent form. Must be called on the main thread.
UserMessagingPlatform.loadConsentForm(
MyActivity.this.getApplicationContext(),
new UserMessagingPlatform.OnConsentFormLoadSuccessListener() {
@Override
public void onConsentFormLoadSuccess(ConsentForm consentForm) {
consentForm.show(
(Activity) MyActivity.this,
new ConsentForm.OnConsentFormDismissedListener() {
@Override
public void onConsentFormDismissed(@Nullable FormError formError) {
// TODO: Always getting "OBTAINED" even if user dismissed form or selected to not consent.
// User did not consent so consentStatus is still REQUIRED
if (consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) {
MyActivity.this.finish();
}
}
});
}
},
new UserMessagingPlatform.OnConsentFormLoadFailureListener() {
@Override
public void onConsentFormLoadFailure(FormError formError) {
// Handle Error.
}
}
);
} else {
// Handle error
}
}
},
new ConsentInformation.OnConsentInfoUpdateFailureListener() {
@Override
public void onConsentInfoUpdateFailure(FormError formError) {
// Handle the error.
}
});
Подробнее здесь: https://stackoverflow.com/questions/770 ... ot-consent