Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索当前在Android中运行的应用程序的包名_Android_Package - Fatal编程技术网

检索当前在Android中运行的应用程序的包名

检索当前在Android中运行的应用程序的包名,android,package,Android,Package,有人能帮我检索当前在Android中运行的活动包名称的示例代码吗 编辑: 代码1 ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); List<RunningAppProcessInfo> processes = am.getRunningAppProcesses(); if (processes != null){ for (i

有人能帮我检索当前在Android中运行的活动包名称的示例代码吗

编辑:

代码1

    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服务);
List

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