Я хотел бы получить информацию о действиях (например, configchanges, resizemode, если поддерживается картинка в картинке) всех пакетов, имеющихся на устройстве.
Я могу получить информацию о деятельности, используя PackageManager
с флагом GET_ACTIVITIES
. С этим я могу получить значение configChanges
используя ActivityInfo.configChanges
.
Однако значение возвращает случайное значение int, если в android:configChanges
установлено * несколько значений конфигурации.
Например:
если установлены значения ниже
андроида: configChanges = "uiMode | smallestScreenSize | локаль | ColorMode | плотность"
Получение значения конфигурации с использованием кода ниже
PackageInfo packageInfo = mPackageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
ActivityInfo activityInfo[] = packageInfo.activities;
if(activityInfo!=null) {
for(ActivityInfo activity : activityInfo) {
int configChange = activity.configChanges;
}
}
Я получаю activity.configChanges
значение как 23047
Что обозначает 23047, как мне его декодировать, чтобы получить значения конфигурации, установленные в AndroidManifest.xml
В дополнение к этому мы можем получить activity.resizeMode
. Я понимаю, что это @hide
API. Я вижу это значение в режиме отладки в Android Studio.
Любые подсказки / помощь по вышеуказанному будут действительно полезны.