Android 悬浮框

2020-07-05  本文已影响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

源码

https://github.com/Linfeng1028/FloatWindow

上一篇 下一篇

猜你喜欢

热点阅读