首页 > 解决方案 > 检测设置(com.android.settings)是否使用自定义启动器打开

问题描述

对于安装在 POS android 设备上的银行应用程序。目标是检测用户何时打开设置并弹出锁定屏幕。不同之处在于,该应用程序在 POS 设备中像往常一样具有自定义启动器。使用下面的代码,我只能检测到自定义启动器。

            ActivityManager activityManager = (ActivityManager)
                    getSystemService(Context.ACTIVITY_SERVICE);

            List<ActivityManager.RunningTaskInfo> tasks = activityManager
                    .getRunningTasks(Integer.MAX_VALUE);

            for (ActivityManager.RunningTaskInfo task : tasks) {
                if (task.baseActivity.getPackageName().equalsIgnoreCase("com.android.settings")) {
                    Toast.makeText(this, " MyService Started", Toast.LENGTH_LONG).show();
                }
            }

我只能检测到自定义启动器的 MainActivity!。

我还尝试了以下链接中的不同代码实现

从这里测试了两种解决方案,但均未成功

这个库也总是返回 null !

对于添加到清单的权限

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REAL_GET_TASKS " />
<uses-permission
    android:name="android.permission.PACKAGE_USAGE_STATS"
    tools:ignore="ProtectedPermissions" />

标签: androidandroid-studioandroid-9.0-pieandroid-custom-attributes

解决方案


推荐阅读