android - 检测设置(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!。
我还尝试了以下链接中的不同代码实现
对于添加到清单的权限
<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" />
解决方案
推荐阅读
- r - Invalid For-Loop using Sequence in R
- android - 如何将顺序协程块排入队列
- date - apply FilterCriteria "whenDateEqualToAny(dates)" - 要解析的日期数组(日期)的正确形式是什么?
- css - 只要元素具有 CSS 不透明度,Firebase 托管就会将其不透明度更改为 1%
- sql - postgresql index not used on range queries
- gdb - 有没有办法在遇到断点时执行一组 GDB 命令?
- reporting-services - In SSRS is there a way to use newspaper columns and still have a new page per group?
- java - Webview app turns off after Splash Screen Android Studio
- gnuplot - gnuplot:如何从绘制的最后一个点添加一条水平线
- python - 创建图像表面窗口的精灵表