Android 关于悬浮窗权限的问题

    • 正常情况下的处理: 
      dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)以及在清单文件中添加 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 导致需要提醒用户设置,网上查阅资料,判断该权限是否开启,需要适配多种机型,极为不便
    • 可以将TYPE_SYSTEM_ALERT 改成TYPE_TOAST此时不需要悬浮窗权限开启,该全局提示框亦可弹出
    • 但是TYPE_TOAST存在版本的问题 
      • Android 4.4以下取消了界面交互功能(无法获取触摸事件) 可以使用层级较低的TYPE_PHONE代替。
      • Android 4.4 到 7.0 可以使用TYPE_TOAST。全局Dialog
      • Android 7.1.1 存在崩溃的问题,解决方案:使用需要申请system alert window权限的系统级悬浮窗,或者是层级较低的TYPE_PHONE悬浮窗。Android 7.1.1对TYPE_TOAST做了限制
      • Android 8.0 上TYPE_TOAST崩溃。新增一个Window Type,TYPE_APPLICATION_OVERLAY在TYPE_PHONE,TYPE_SYSTEM_ALERT,TYPE_TOAST之上。Android 8.0变更
posted @ 2018-07-12 17:14  星辰之力  阅读(1714)  评论(0编辑  收藏  举报