美文网首页
Android 悬浮框

Android 悬浮框

作者: 请叫我林锋 | 来源:发表于2020-07-05 10:27 被阅读0次

Android 悬浮框在IM应用或者音视频应用中经常会有用到,这也是我第二次开发这悬浮框这个功能了,为了避免以后再开发时还要一次次去往上查资料,这里记录一下悬浮框的开发过程。

现在我要实现的功能是:当用户点击 back键或者home键时,应用退到后台,并打开悬浮框。

悬浮框权限

首先我们需要在 AndroidManifest.xml 中定义悬浮框所需要的权限:

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />

如果 Android SDK 版本大于等于 23,我们还需要判断应用是否有悬浮框权限,若没有需要跳转到授权界面让用户打开:

if (!Settings.canDrawOverlays(this)) {
    val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
    intent.data = Uri.parse("package:$packageName")
    startActivityForResult(intent, 1)
}

逻辑图

悬浮框逻辑.png
  • 我们可以通过重写 Activity 中的 onBackPress 方法来实现按下 back 键出现悬浮框的功能。

  • 从 Android 4.0 开始,Home 键就无法再通过 Activity.onKeyDown 方法来监听和拦截键了,虽然还象征性的保留了 Home 键的 KeyCode 来向前兼容,但是 Home 键按下去,并不会回调这个方法。除了 onKeyDown 还有 ACTION_CLOSE_SYSTEM_DIALOGS 广播可以监听到应用退出后台。但是这时候应用已经退出到后台了,我们只能监听不能进行拦截。

源码

https://github.com/Linfeng1028/FloatWindow

相关文章

  • Android PopupWindow 和 Dialog Act

    PopupWindow(悬浮框) Android 中的 PopupWindow[https://developer...

  • Android 悬浮框

    Android 悬浮框在IM应用或者音视频应用中经常会有用到,这也是我第二次开发这悬浮框这个功能了,为了避免以后再...

  • 悬浮框

    使用悬浮框 悬浮窗监听器 悬浮窗管理器

  • 悬浮框

    1.在项目下的build.gradle中 2.添加依赖 3.设置

  • html td鼠标进入显示悬浮框

    鼠标移动到指定框中,显示悬浮框展示指定内容 显示悬浮框的内容 对应的js显示标题内容 function info(...

  • Android 浮动编辑框

    Android app 开发中经常会遇到一些输入框要悬浮到软键盘上方的需求,大致做法有做法如下。 Android输...

  • Android系统悬浮提示框

    点击按钮的代码 判断是否开启了横幅提示 进入设置页面开启横幅提示 创建通知并返回,有权限再notify

  • echarts地图下钻右击添加返回上一级

    1.首先在页面中新建一个替代默认右击的悬浮框 2.屏蔽自身的右击事件 3.定位右击悬浮框的位置 3.给悬浮框添加单击事件

  • selenium+python 定位悬浮元素

    背景 在web中,悬浮框的特点是当检测鼠标进入时,发生弹出悬浮框事件,当鼠标退出时,悬浮框在页面上消失。此时,若依...

  • 模拟系统按键

    项目需要一个悬浮框的返回键,如下两种都可以实现,但需要系统权限和签名.android:sharedUserId="...

网友评论

      本文标题:Android 悬浮框

      本文链接:https://www.haomeiwen.com/subject/xkamqktx.html