检索当前在Android中运行的应用程序的包名
有人能帮我检索当前在Android中运行的活动包名称的示例代码吗 编辑: 代码1检索当前在Android中运行的应用程序的包名,android,package,Android,Package,有人能帮我检索当前在Android中运行的活动包名称的示例代码吗 编辑: 代码1 ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); List<RunningAppProcessInfo> processes = am.getRunningAppProcesses(); if (processes != null){ for (i
ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = am.getRunningAppProcesses();
if (processes != null){
for (int i=0; i<processes.size(); i++){
RunningAppProcessInfo temp = processes.get(i);
String pName = temp.processName;
for (int k=0; k<blacklist.size(); k++){
if (pName.equalsIgnoreCase((String)blacklist.get(k))){
int pid = android.os.Process.getUidForName(pName);
android.os.Process.killProcess(pid);
}
}
}
ActivityManager am=(ActivityManager)getSystemService(Activity.Activity\u服务);
List processs=am.getRunningAppProcesses();
if(进程!=null){
对于(int i=0;i,您可以使用AndroidActivityManager上的GetRunningAppProcess检索正在运行的进程列表
检查此链接:
您可以在AndroidPackageManager上使用getInstalledPackages方法检索所有已安装应用程序的列表
选中此链接:您可以使用AndroidActivityManager上的GetRunningAppProcess检索正在运行的进程列表
检查此链接:
您可以在AndroidPackageManager上使用getInstalledPackages方法检索所有已安装应用程序的列表
检查此链接:ActivityManager am=(ActivityManager)context.getSystemService(ACTIVITY\u服务);
ListActivityManager am=(ActivityManager)context.getSystemService(ACTIVITY_服务);
列出首先,API大于20,然后使用下面的代码来确定工作。我使用此代码并正常工作。试试看
String currentApp=null;
UsageStatsManager usm= (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
long time=System.currentTimeMillis();
List<UsageStats> applist=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time - 1000*1000,time);
if(applist !=null && applist.size() > 0)
{
SortedMap<Long,UsageStats> mySortedMap=new TreeMap<Long,UsageStats>();
for (UsageStats usageStats : applist)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap != null && !mySortedMap.isEmpty())
{
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Log.e(TAG, "Current App in foreground is: " + currentApp);
return currentApp;
String currentApp=null;
UsageStatsManager usm=(UsageStatsManager)this.getSystemService(Context.USAGE\u STATS\u SERVICE);
长时间=System.currentTimeMillis();
List applist=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time-1000*1000,time);
if(applist!=null&&applist.size()>0)
{
SortedMap mySortedMap=newtreemap();
for(UsageStats UsageStats:applist)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap!=null&&!mySortedMap.isEmpty())
{
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Log.e(标签,“前台的当前应用程序为:“+currentApp”);
返回当前应用程序;
首先,API大于20,然后使用下面的代码来确定工作。我使用此代码并正常工作。试试看
String currentApp=null;
UsageStatsManager usm= (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
long time=System.currentTimeMillis();
List<UsageStats> applist=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time - 1000*1000,time);
if(applist !=null && applist.size() > 0)
{
SortedMap<Long,UsageStats> mySortedMap=new TreeMap<Long,UsageStats>();
for (UsageStats usageStats : applist)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap != null && !mySortedMap.isEmpty())
{
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Log.e(TAG, "Current App in foreground is: " + currentApp);
return currentApp;
String currentApp=null;
UsageStatsManager usm=(UsageStatsManager)this.getSystemService(Context.USAGE\u STATS\u SERVICE);
长时间=System.currentTimeMillis();
List applist=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time-1000*1000,time);
if(applist!=null&&applist.size()>0)
{
SortedMap mySortedMap=newtreemap();
for(UsageStats UsageStats:applist)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap!=null&&!mySortedMap.isEmpty())
{
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Log.e(标签,“前台的当前应用程序为:“+currentApp”);
返回当前应用程序;
Erm。我没有试图查找已安装的应用程序,但当前正在前台或后台运行。我确实尝试过使用getRunningAppProcesses。但我不确定它是如何工作的。我是否可以通过使用am.getRunningAppProcesse获取正在运行的进程列表,并从每个进程信息中获取其应用程序包s().get(i).pkgList返回StringpkgList返回已加载到该进程中的所有程序包。抱歉,如果我听起来像一个noob,但通过程序包这是否意味着导入的程序包?基本上,我正在尝试创建一个任务杀手,它将我创建的黑名单应用程序与当前运行的应用程序相匹配。然后杀死它们。你应该d试试看。我的回答中描述的方法应该能回答您最初的问题。呃。我不想查找已安装的应用程序,但目前正在前台或后台运行。我确实尝试过使用getRunningAppProcesses。但我不确定它是如何工作的。我是否可以从每个进程中获取正在运行的进程列表o使用am.getRunningAppProcesses().get(i)获取其应用程序的包.pkgList返回StringpkgList返回已加载到该进程中的所有程序包。抱歉,如果我听起来像一个noob,但通过程序包这是否意味着导入的程序包?基本上,我正在尝试创建一个任务杀手,它将我创建的黑名单应用程序与当前运行的应用程序相匹配。然后杀死它们。你应该d尝试一下。我的答案中描述的方法应该可以回答您的原始问题。getRunningTasks现在不推荐使用getRunningTasks现在不推荐使用
String currentApp=null;
UsageStatsManager usm= (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
long time=System.currentTimeMillis();
List<UsageStats> applist=usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,time - 1000*1000,time);
if(applist !=null && applist.size() > 0)
{
SortedMap<Long,UsageStats> mySortedMap=new TreeMap<Long,UsageStats>();
for (UsageStats usageStats : applist)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap != null && !mySortedMap.isEmpty())
{
currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Log.e(TAG, "Current App in foreground is: " + currentApp);
return currentApp;