美文网首页
显示当前手机界面显示的包名和类名

显示当前手机界面显示的包名和类名

作者: 主音King | 来源:发表于2019-01-22 16:00 被阅读5次

首先在清单文件里添加 系统级别的弹窗权限

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

然后检查api>=23(小于这个级别的不需要判断)的手机是否用户开启了这个权限
如果没有开启则隐式跳转让用户开启
例如:魅族pro5会跳到 辅助功能-->无障碍-->(showName)推荐开启。然后点击开启就行了。

    /**
     * 悬浮窗权限
     */
    private fun checkAlertWindowPermission(): Boolean {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (!Settings.canDrawOverlays(this)) {// 是否在其它app上draw
                Toast.makeText(this, "当前无悬浮窗权限,请授权", Toast.LENGTH_SHORT).show()
                val intent = Intent(
                    Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:$packageName")
                )
                startActivityForResult(intent, PERMISSION_CODE)
                return false
            }
        }
        return true
    }

    /**
     * 系统属性:判断辅助功能是否开启
     */
    private fun isAccessibilitySettingsOn(context: Context): Boolean {
        val accessibilityEnable = Settings.Secure.getInt(context.contentResolver, Settings.Secure.ACCESSIBILITY_ENABLED)
        if (accessibilityEnable == 1){
            val services = Settings.Secure.getString(context.contentResolver,Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES)
            if (services!=null){
                return services.toLowerCase().contains(context.packageName.toLowerCase())
            }
        }
        return false
    }

自定义自己的系统悬浮窗FloatView。
在TrackerService中添加悬浮窗、更新悬浮窗ui等
demo

相关文章

网友评论

      本文标题:显示当前手机界面显示的包名和类名

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