我正在构建一个xposed模块,并且仅当某些进程(应用程序)调用此方法时,我才想挂接该方法。
我可以使用Binder获取进程pid和uid,但是我找不到在没有上下文的情况下获取包名称的方法(我在无法获取任何Context作为参数的类中运行代码)。
我怎么才能得到它?
谢谢,
吉迪
最佳答案
如果您没有Context
,有一种解决方案对我有用:
BufferedReader cmdlineReader = null;
try {
cmdlineReader = new BufferedReader(new InputStreamReader(
new FileInputStream(
"/proc/" + android.os.Process.myPid() + "/cmdline"),
"iso-8859-1"));
int c;
StringBuilder processName = new StringBuilder();
while ((c = cmdlineReader.read()) > 0) {
processName.append((char) c);
}
return processName.toString();
} finally {
if (cmdlineReader != null) {
cmdlineReader.close();
}
}
资料来源:Is there a way to get current process name in Android