example :

    if(packageNames.length >1){
    int pid = Binder.getCallingPid();
    int uid = Binder.getCallingUid();
    ActivityManager am = (ActivityManager)mContext.getSystemService(mContext.ACTIVITY_SERVICE);
        List runningApps  = am.getRunningAppProcesses();
      if (runningApps != null && runningApps.size() > 0) {
        for (ActivityManager.RunningAppProcessInfo app : runningApps) {
        if(app.pid == pid && app.uid ==uid){
          packageNames[0] = app.processName;
        break;
     }
          }
      }
    }

 

网络上的案例:

 

String callerPackage = getAppNameByPID(getContext(), Binder.getCallingPid());

 

private String getAppName(int pID){    String processName = "";    ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);    List l = am.getRunningAppProcesses();    Iterator i = l.iterator();    PackageManager pm = this.getPackageManager();    while(i.hasNext())     {          ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());          try           {               if(info.pid == pID)              {                  CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));                  //Log.d("Process", "Id: "+ info.pid +" ProcessName: "+ info.processName +"  Label: "+c.toString());                  //processName = c.toString();                  processName = info.processName;              }          }          catch(Exception e)           {                //Log.d("Process", "Error>> :"+ e.toString());          }   }    return processName;}

 

 

 

ActivityManagerService.java

    @Override
    public List getRunningExternalApplications() {
        enforceNotIsolatedCaller("getRunningExternalApplications");
        List runningApps = getRunningAppProcesses();
        List retList = new ArrayList();
        if (runningApps != null && runningApps.size() > 0) {
            Set extList = new HashSet();
            for (ActivityManager.RunningAppProcessInfo app : runningApps) {
                if (app.pkgList != null) {
                    for (String pkg : app.pkgList) {
                        extList.add(pkg);
                    }
                }
            }

}

 

 

 

更多相关文章

  1. android 判断3G WIFI网络
  2. Android 异步加载一张网络图片
  3. Android中判断app是否连接网络
  4. Android Http网络开发神兵利器
  5. android 网络图片与网页读取

随机推荐

  1. 一线大厂在机器学习方向的面试题(一)
  2. 股票均线策略
  3. “360给奔驰挖了19个漏洞”,车联网给***留
  4. JavaScript:演示Ajax的get和post请求,练习
  5. PyCharm版本有哪些?是否免费?
  6. 通过Windows预读取文件找寻***者的蛛丝马
  7. 在Docker中运行特权容器很危险!!!
  8. 通过keep-alive实现了解vue组件实现原理(3
  9. Python中的IDLE是什么?常用功能介绍!
  10. 浅谈Web安全常见问题