【问题标题】:Android overlay window on API 26+, WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY vs TYPE_PHONEAPI 26+ 上的 Android 覆盖窗口,WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY 与 TYPE_PHONE
【发布时间】:2021-03-09 20:20:02
【问题描述】:

我有一个显示浮动覆盖窗口的应用程序,它运行良好。它使用 WindowManager.LayoutParams.TYPE_PHONE 用于 windows 但是它说它在 API 级别 26 上已弃用。网上有人说他们在使用 Android 8.0 及更高版本的 TYPE_PHONE 时会出错,但我已经在 Android 手机上测试了我的应用程序9 和 10,它与 TYPE_PHONE 完美配合。对于 8.0 及更高版本的手机,将其更改为 TYPE_APPLICATION_OVERLAY 是否有任何好处,因为它可以按原样工作?目前目标版本为 25。

【问题讨论】:

    标签: android overlay android-8.0-oreo android-windowmanager layoutparams


    【解决方案1】:

    您可以在官方文档 (https://developer.android.com/reference/android/view/WindowManager.LayoutParams#TYPE_PHONE) 中阅读:

    此常量在 API 级别 26 中已弃用。 对于非系统应用。改用 TYPE_APPLICATION_OVERLAY

    这并不意味着该值不起作用,而只是已弃用。 在较新的应用程序(目标 SDK >=26)中,您必须使用建议的值才能 100% 兼容。

    如果您想定位到 25,那么您可以继续使用 TYPE_PHONE,但 Google Play 商店不再接受低于 SDK 29 的应用;)

    【讨论】:

    • 该死的,这个应用程序实际上在 Play 商店中,但它没有被删除或其他任何东西,请使用 android api 26 及更高版本。不管怎样,谢谢你的回答
    • 从 12 月开始(如果我没记错的话)所有新的应用程序或更新都应该针对 SDK 29+
    • 其实好像已经是这样了,我只是试了下无法更新我的应用,除非我把目标版本更新到29
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多