Нелогичная работа появления формы согласия ГДПР - PullRequest
0 голосов
/ 14 апреля 2019

Реклама AdMob работает в моем приложении, и я хочу, чтобы при открытии приложения появлялась форма согласия, где пользователь из Европы выберет персонализированную или не персонализированную рекламу, а другие пользователи не увидят эту форму.Мой код работает нормально на всех протестированных устройствах, но проблема в том, что на некоторых устройствах код работает, но диалоговое окно не отображается.

Кроме того, я попробовал этот код на компьютере моего друга, и его форма называетсяна всех устройствах.

Ниже я покажу код:

private ConsentForm form;

@Override
    protected void onCreate(Bundle savedInstanceState) {

ConsentInformation consentInformation = ConsentInformation.getInstance(getApplicationContext());
        String[] publisherIds = {getString(R.string.app_id)};
        consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
            @Override
            public void onConsentInfoUpdated(ConsentStatus consentStatus) {
                // User's consent status successfully updated.

                boolean inEEA = ConsentInformation.getInstance(getApplicationContext()).isRequestLocationInEeaOrUnknown();

                if (inEEA){
                    Toast.makeText(MainActivity.this, consentStatus.toString(), Toast.LENGTH_SHORT).show();
                    if(consentStatus == consentStatus.PERSONALIZED){

                    }else if(consentStatus == consentStatus.NON_PERSONALIZED){

                        Bundle extras = new Bundle();
                        extras.putString("npa", "1");

                        AdRequest request = new AdRequest.Builder()
                                .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                                .build();
                    }else{ //here code form

                        URL privacyUrl = null;
                        try {
                            // TODO: Replace with your app's privacy policy URL.
                            privacyUrl = new URL(getString(R.string.privacy));
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                            // Handle error.
                        }
                        form = new ConsentForm.Builder(MainActivity.this, privacyUrl)
                                .withListener(new ConsentFormListener() {
                                    @Override
                                    public void onConsentFormLoaded() {
                                        // Consent form loaded successfully.
                                        form.show();
                                    }

                                    @Override
                                    public void onConsentFormOpened() {
                                        // Consent form was displayed.
                                    }

                                    @Override
                                    public void onConsentFormClosed(
                                            ConsentStatus consentStatus, Boolean userPrefersAdFree) {
                                        // Consent form was closed.
                                        if (consentStatus == consentStatus.NON_PERSONALIZED){
                                            Bundle extras = new Bundle();
                                            extras.putString("npa", "1");

                                            AdRequest request = new AdRequest.Builder()
                                                    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                                                    .build();
                                        }
                                    }

                                    @Override
                                    public void onConsentFormError(String errorDescription) {
                                        // Consent form error.
                                    }
                                })
                                .withPersonalizedAdsOption()
                                .withNonPersonalizedAdsOption()
                                //.withAdFreeOption()
                                .build();
                        form.load();
                    }//here end code form
                }else{  
                    //Not Europe
                }//end inEEA
            }

            @Override
            public void onFailedToUpdateConsentInfo(String errorDescription) {
                // User's consent status failed to update.
            }
        });}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...