gpt4 book ai didi

android - 如果应用程序的 'process name' 与 'package name' 不同,如何获取它?

转载 作者:行者123 更新时间:2023-11-30 02:14:43 24 4
gpt4 key购买 nike

这是我的场景,

假设我有一些应用程序的包名,目前我正在通过将“packagename”传递给以下方法来确定应用程序是否正在运行

boolean isNamedProcessRunning(String packageName){
if (packageName == null)
return false;

ActivityManager manager =
(ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
for (RunningAppProcessInfo process : processes)
{
Log.e("", "----> processname "+process.processName);

if (packageName.equals(process.processName))
{
return true;
}
}
return false;
}

我知道,默认情况下,android 将包名作为进程名。但是,如果在 list 文件中定义了应用程序标签中的进程属性 android:process="com.example.newprocessname"那么应用程序将以这个名称“com.example.newprocessname”运行。

如何处理这种情况?

最佳答案

试试这个

boolean isNamedProcessRunning(String packageName){
if (packageName == null)
return false;

ActivityManager manager =
(ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
for (RunningAppProcessInfo process : processes)
{
for(int i = 0;i < process.pkgList.length; i++){
Log.e("", "----> pkg name "+ i + process.pkgList[i]);
if(process.pkgList[i].equals(packageName))
return true;
}

}
return false;
}

关于android - 如果应用程序的 'process name' 与 'package name' 不同,如何获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com