AndroidAdvertisingId исключение на Android P - PullRequest
0 голосов
/ 22 мая 2018

Без изменения какого-либо кода между Android Oreo и Android P, когда я пытаюсь получить AdvertisingID следующим образом:

 Thread backgroundWorker = new Thread(new Runnable(
 {
    @Override
    public void run()
    {
         try
         { 

            AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(appContext);

           if (adInfo != null){
               Log.d(“some tag”,adInfo.getId());
           }

        } 
        catch (IllegalStateException e){} 
        catch (GooglePlayServicesRepairableException e){}
        catch (IOException e){}
        catch (GooglePlayServicesNotAvailableException e){}
        catch (SecurityException e){}
});

Я получаю следующее исключение SecurityException на Android P, у меня нет никакогоSharedPrefs объявлен в моем манифесте или иным образом:

05-22 15: 01: 14.590 18536-22301 / com.someapp.mobilesdktest W / AdvertisingIdClient: Ошибка при чтении из SharedPreferences java.lang.SecurityException: MODE_WORLD_READABLEбольше не поддерживается в android.app.ContextImpl.checkMode (ContextImpl.java:2453) в android.app.ContextImpl.getSharedPreferences (ContextImpl.java:389) в android.app.ContextImpl.getSharedPreferences (ContextImpl.java:6).google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo (неизвестный источник: 12) в com.someapp.SomeFile $ 58.run (SomeFile.java:3607) в java.lang.Thread.run (Thread.java:764).)

Когда я пытаюсь распечатать какие-либо SharedPrefs через SharedPreferences prefs.getAll (), это пусто ... Как изменитьего в MODE_PRIVATE, поскольку этот метод getAdvertisingIdInfo () является методом в пакете play-services-basement, и он пытается вызвать getSharedPreferences ("google_ads_flags", 1);

1 Ответ

0 голосов
/ 25 мая 2018

Итак, я обновился до com.google.android.gms: play-services-ads: 12.0.1 и исключение пропало.

...