android在BroadcastReceiver中获取进程名称

标签 android process broadcastreceiver

我陷入了这个麻烦,想不通。我在谷歌上搜索了很多,但没有任何答案。

我解释一下:
我有一个在不同进程中运行的 BroadCastReceiver (android:process=":anotherProcess")

我想在我的 BroadcastReceiver 中获取这个进程名称。

在这种情况下,对于示例,它可能是:com.my.package:anotherProcess

这可能吗?我该怎么做?

最佳答案

我找到了一个方法。对于任何需要这个的人:

     int id = Process.myPid();
     String myProcessName =context.getPackageName();

     ActivityManager actvityManager = (ActivityManager)context.getSystemService( context.ACTIVITY_SERVICE );
     List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();

     for(RunningAppProcessInfo procInfo : procInfos) {
         if (id == procInfo.pid)
         {
             myProcessName = procInfo.processName;
         }
     }

关于android在BroadcastReceiver中获取进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12706935/

相关文章:

android - 电话状态改变了监听器从未被解雇

android - 双击时如何阻止 Android Studio 突出显示特定单词?

java - 尽管获得了正确的数据,为什么 RecyclerView 适配器没有正确更新(只是第一次)?

c++ - PROCESSENTERY32 结构中的 szExeFile 给出了一个奇怪的值

.net - 如何停止从 C# .Net 应用程序启动的 Excel 进程?

android - 在 list 中注册的广播接收器未在 Android Oreo 中调用

android - 反编译XAPK文件

android - 无法加载 android 套接字类 java.lang.NoSuchMethodException : com. android.org.conscrypt.OpenSSLSocketImpl.setUseSessionTickets [boolean]

c# - 在另一个进程中处理 WCF 事件

android - 在后台持续运行 BroadcastReceiver 以监控网络状态。