boolean isLauncher(){
Log.e("ScreenshotService", "show begin");
List<ActivityManager.RunningTaskInfo> list;
if(mActivityManager != null){
//还可以使用mActivityManager.getAppTasks();获取到的和当前进程(context)相关联的任务栈,就是说在一个没有Activity的application
//中的服务中是获取不到当前显示的Activity的任务栈的,因为和该服务不是一个进程的,或者不是相关联的(即不是启动该进程Activity的)。
list = mActivityManager.getRunningTasks(1);//获取最多一个Task,getRunningTasks(1)该方法是被抛弃的。
Log.e("ScreenshotService", "mActivityManager not null");
}else{list = null;}
if(list != null){
Log.e("ScreenshotService", "list not null, size: " + list.size());
//理论上应该是能获取所有任务栈的,但是实际结果是,只有当前Activity所属任务栈和Launcher任务栈是稳定能获取到的。
//当前Activity的任务栈就在List.get(0)中。
ActivityManager.RunningTaskInfo taskInfo = list.get(0);
if (taskInfo != null) {
String currentActivity = taskInfo.topActivity.getPackageName();
if(currentActivity.equals("com.gionee.amisystem")){//若当前显示的activity所在的包是com.gionee.amisystem,则。。。
Log.e("ScreenshotService", "currentActivity is Launcher ");
return true;
}
Log.e("ScreenshotService","task id: " + taskInfo.id + "; topActivity: " + currentActivity);
// String currentActivity = appTask.getTaskInfo().topActivity.flattenToString();
// Log.e(Tag,"task id: " + appTask.getTaskInfo().description + "; topActivity: " + currentActivity);
}else{
Log.e("ScreenshotService", "task " + " is null");
}
}else{
Log.e("ScreenshotService", "list is null");
}
Log.e("ScreenshotService", "show end");
return false;
}