判断当前显示Activity信息(所属包名)

本文介绍如何在Android系统中获取当前显示的Activity详细信息,包括所属的应用包名。通过对系统服务的调用和权限使用,可以实现对运行状态的监控和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
		}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值