Java 在AppLock服务中将通知作为当前前台包忽略
我正在创建一个AppLock,它工作得非常好。我有一个使用UserStat检查当前前台应用程序的服务。我目前正在显示和隐藏基于包更改的应用程序锁。但无论何时收到任何通知,它都会占据当前前台应用程序的位置,而我的应用程序锁将隐藏。由于包名称的更改 这是我获取当前前台包的代码Java 在AppLock服务中将通知作为当前前台包忽略,java,android,service,applocker,Java,Android,Service,Applocker,我正在创建一个AppLock,它工作得非常好。我有一个使用UserStat检查当前前台应用程序的服务。我目前正在显示和隐藏基于包更改的应用程序锁。但无论何时收到任何通知,它都会占据当前前台应用程序的位置,而我的应用程序锁将隐藏。由于包名称的更改 这是我获取当前前台包的代码 @TargetApi(Build.VERSION_CODES.LOLLIPOP) public static String getCurrentAppPackage(Context context) { String
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static String getCurrentAppPackage(Context context) {
String topPackageName = null;
UsageStatsManager usage = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> stats = usage.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);
if (stats != null && stats.size() > 0) {
SortedMap<Long, UsageStats> runningTask = new TreeMap<>();
for (UsageStats usageStats : stats) {
runningTask.put(usageStats.getLastTimeUsed(), usageStats);
}
if (runningTask.isEmpty()) {
return null;
}
topPackageName = runningTask.get(runningTask.lastKey()).getPackageName();
}
if (topPackageName == null) {
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
context.startActivity(intent);
}
return topPackageName;
}
@TargetApi(Build.VERSION\u CODES.LOLLIPOP)
公共静态字符串getCurrentAppPackage(上下文){
字符串topPackageName=null;
UsageStatsManager用法=(UsageStatsManager)context.getSystemService(context.usage\u STATS\u SERVICE);
长时间=System.currentTimeMillis();
List stats=usage.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time-1000*1000,time);
if(stats!=null&&stats.size()>0){
SortedMap runningTask=新建树映射();
for(UsageStats UsageStats:stats){
runningTask.put(usageStats.getLastTimeUsed(),usageStats);
}
if(runningTask.isEmpty()){
返回null;
}
topPackageName=runningTask.get(runningTask.lastKey()).getPackageName();
}
if(topPackageName==null){
意向意向=新意向(设置、操作、使用、访问、设置);
背景。开始触觉(意图);
}
返回topPackageName;
}