【发布时间】:2018-05-02 05:22:48
【问题描述】:
我想获取设备中所有包的活动信息(例如 configchanges、resizemode,如果支持画中画)。
我可以使用带有GET_ACTIVITIES 标志的PackageManager 获取活动信息。有了它,我可以使用ActivityInfo.configChanges 获得configChanges 值。
但是,如果在android:configChanges 中设置了多个配置值,则该值会返回一个随机整数。
例如:
如果设置了以下值
android:configChanges="uiMode|smallestScreenSize|locale|colorMode|density"
使用以下代码获取 configchanges 值
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 中看到调试模式下的值。
上述任何线索/帮助都将非常有用。
【问题讨论】:
标签: android android-activity android-manifest android-package-managers