当我遇到 Window#getStatusBarColor()
时,我一直在研究 Android 5.0 Lollipop API。 .但是,这需要一个 Window
的实例,例如来自 Activity
的实例,因此它不能在后台服务中使用。有没有办法让应用程序检测 Android 5.0 上的状态栏颜色?
更新:
正如 Nikola Despotoski 提到的,有一个 createScreenCaptureIntent
可以通过“屏幕录制”并仅检查状态栏区域来达到目的的方法。
事实证明,如果将此方法的返回值传递给 startActivityForResult
。初始请求旨在从 Activity 中调用。
即使结果被保存并传递给服务,也需要一些复杂的模式来在每次需要时重新请求许可。似乎也没有同步方式来获取位图。在后台,这意味着始终处理屏幕更改以获得单个像素。
最佳答案
有趣的问题。
您可以使用新的 Lolipop 屏幕捕获 API。使用 createScreenCaptureIntent()和 MediaProjectionManager
检索 Bitmap
。
获得位图后,尝试将位图从 top=0 剪切(解码)到 bottom= status_bar_height .将剪切的 Bitmap
传递给 Palette
并使用 getRGB()
方法检索颜色。
关于android - 应用程序如何检测状态栏颜色(Android 5.0 Lollipop)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473697/