zoukankan      html  css  js  c++  java
  • Android无需权限显示悬浮窗

    TYPE_TOAST一直都可以显示, 但是用TYPE_TOAST显示出来的在2.3上无法接收点击事件, 因此还是无法随意使用.
    下面是我之前研究后台线程显示对话框的时候记得笔记, 大家可以看看我们项目中有需求需要在后台任务中显示Dialog, 项目最初的做法是用Activity模拟Dialog, 一个Activity已经承载了近20种Dialog, 代码混乱至极. 后来我发现Dialog可以通过改变Window Type实现不依赖Activity显示, 然后就很兴奋的要在使用这种方式来作为新的实现方式.
    最初WindowType是WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 可是这是悬浮窗了, MIUI会默认禁止(真他妈操蛋,也没有任何提示)最终放弃. 后来试着换成了WindowManager.LayoutParams.TYPE_TOAST, 起初效果很好,MIUI也不禁止了, 哪里都能显示, 这下开心了. 可是后来又发现在2.3上不能接收点击事件, 也就是说Dialog上的按钮不能点击, 这他妈就很操蛋了, 又放弃了. 又试了试其他的Type都不能满足需求, 结果如下:TYPE_SEARCH_BAR: 未知
    TYPE_ACCESSIBILITY_OVERLAY: 拒绝使用
    TYPE_APPLICATION: 只能配合Activity在当前APP使用TYPE_APPLICATION_ATTACHED_DIALOG: 只能配合Activity在当前APP使用
    TYPE_APPLICATION_MEDIA: 无法使用(什么也不显示)
    TYPE_APPLICATION_PANEL: 只能配合Activity在当前APP使用(PopupWindow默认就是这个Type)
    TYPE_APPLICATION_STARTING: 无法使用(什么也不显示)
    TYPE_APPLICATION_SUB_PANEL: 只能配合Activity在当前APP使用TYPE_BASE_APPLICATION: 无法使用(什么也不显示)
    TYPE_CHANGED: 只能配合Activity在当前APP使用
    TYPE_INPUT_METHOD: 无法使用(直接崩溃)
    TYPE_INPUT_METHOD_DIALOG: 无法使用(直接崩溃)
    TYPE_KEYGUARD_DIALOG: 拒绝使用
    TYPE_PHONE: 属于悬浮窗(并且给一个Activity的话按下HOME键会出现看不到桌面上的图标异常情况)
    TYPE_TOAST: 不属于悬浮窗, 但有悬浮窗的功能, 缺点是在Android2.3上无法接收点击事件
    TYPE_SYSTEM_ALERT: 属于悬浮窗, 但是会被禁止
  • 相关阅读:
    实验一
    requests/lxml的简单用例
    使用python的cookielib加载已保存的cookie维持登录状态
    计算机系统要素
    python实现部分实例
    ch2
    迷了迷了,外国人都看不懂的英语
    图形学名词解释
    ch17
    ServletConfig
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9305188.html
Copyright © 2011-2022 走看看