我正在开发具有重叠视图的应用程序。无论哪个应用程序正在运行,我都希望检索状态栏的颜色。因此,我想获取应用程序用于着色状态栏的颜色。例如,WhatsApp用绿色为其着色,而Facebook用蓝色为其着色。
我已经知道如何获取当前应用运行的packageName,现在我需要颜色。
我遵循了this answer,并使这种方法像这样:
// Create the attribute set used to get the colorPrimary color
final int[] attrs = new int[] {
res.getIdentifier("statusBarColor", "attr", appPackageName),
android.R.attr.statusBarColor
};
该数组的第二个位置对于Facebook来说很好用,但是对WhatsApp都不起作用,因此它返回后备Color.WHITE
。
任何人都可以通过提供所需应用的程序包名称或通过其他任何方式(例如从服务中获取当前状态栏颜色)来帮助使此方法起作用吗?
我的SDK版本当前从21降到25。