如何在Blackberry中查找前台应用程序唯一ID /名称

时间:2011-12-23 06:26:06

标签: blackberry

我在查找当前打开的应用程序名称时遇到问题。 我使用ApplicationManager类来获取可见的应用程序。 应用程序描述符显示所有这些应用程序的相同名称电子邮件,消息,短信,呼叫日志。 他们正在为所有上述应用显示“net_rim_bb_messaging_app”。

我需要在打开这些应用程序(电子邮件,消息,短信,calllog)时找到唯一的标识符/名称。 我在过去3天尝试了这个,但找不到解决方案。 能告诉我一个解决方案吗?

ApplicationDescriptor [] appDis = manager.getVisibleApplications();
int currentForgroundAppID = manager.getForegroundProcessId();

for(int i=0;i<appIDs.length;i++)
{
    if(appDis[i].getModuleName().equals("net_rim_bb_messaging_app"))
    {
        //print Messaging app in foreground...
    }
}

上面for循环中的情况对于此列表中的每个应用都是如此。

  1. 电子邮件,
  2. 短信
  3. 通话日志......
  4. 但是,我需要找到一种独特的方法来查找已打开的应用程序。

    感谢Adv,

    Satish.k

1 个答案:

答案 0 :(得分:0)

以下代码可以显示当前前景应用名称

ApplicationDescriptor[] mAppDes;
    ApplicationManager appMan = ApplicationManager.getApplicationManager();
                    appMan.getForegroundProcessId();

                    mAppDes = appMan.getVisibleApplications(); 
                           for (int i = 0; i < mAppDes.length; i++) {
                              boolean isFG = appMan.getProcessId(mAppDes[i]) == appMan.getForegroundProcessId();
                                if(isFG)
                                {
                                   System.out.println("This is your Foteground application Name"+mAppDes[i].getName());
                                  }else{
                                      System.out.println("This is your Background application Name"+mAppDes[i].getName());
                                  }
                            }