我正在构建一个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

10-04 19:56