Фон
У меня есть живые обои, которые используют относительно новый API (от Android 8.1 - API 26), чтобы запросить ОС использовать индивидуальные цвета:
Проблема
На Android 8.1 и даже на Android P DP1 все работало нормально с этими функциями, так какони делали то же, что и обычные обои с цветами, воздействуя на ящик уведомлений, если выбранный цвет достаточно темный.Вот сравнение между выбором не темного цвета и темным цветом фона:
Дело в том, что в Android P beta (DP2), даже если эта функция вызывается, она ничего не делает, никогда.
Чтобы протестировать ее самостоятельно, вы можете попробовать полный проект.опубликовал здесь .
Что я нашел
Я думал, что, возможно, API изменился, поэтомуЯ попытался выяснить, какие функции доступны, но ничего нового не увидел.
Я пытался использовать различные способы для возврата настроенных цветов:
а.WallpaperColors(Color.valueOf(0xff000000.toInt()), Color.valueOf(0xff000000.toInt()), Color.valueOf(0xff000000.toInt()))
b.WallpaperColors.fromDrawable(ColorDrawable(0xff000000.toInt()))
c.WallpaperColors.fromDrawable(BitmapDrawable(completelyBlackBitmap))
d.WallpaperColors.fromBitmap(completelyBlackBitmap)
К сожалению, никто не работал (fromBitmap
- это тот, который хорошо работает на Android 8.1).
Видя это, я еще раз проверил, что мой код в порядке, и заметил, что встроенные живые обои работают нормально, и что выбор сплошных черных обоев (вместо живых обоев) также влияет на пользовательский интерфейсОС.
Видя, что он работает со встроенными приложениями, я сообщил Google об этой проблеме, только чтобы узнать, что они не понимают, о чем я говорюи каждый раз, когда я пытался сказать им, что они неправильно поняли это:
Я хотел убедиться, что проблема связана не только с моим приложением, но и с другими, поэтому я протестировал Живые обои Muzei *Приложение 1087 *, созданное одним из разработчиков Google.Проблема действительно возникает и там, хотя она нормально работает на Android 8.1.
Мне было просто любопытно, и я хотел проверить, может ли проблема возникнуть, если я перенес Muzei в системуприложение, но после этого я видел, что проблема все еще существует.
Вопросы
Почему это больше не работает?
Есть ли обходной путь / исправление для этого?
Почему он хорошо работает для встроенных приложений и для обычных обоев, но недля сторонних приложений?Я не думаю, что их код - какая-то разница.