1

我正在寻找获取发送 SMS 的应用程序的进程 ID 的方法。我可以通过 OutboundMessageListener 获取发送消息的内容,但我不知道如何获取进程 ID。
这是我的尝试:

 MessageConnection _mc = (MessageConnection) Connector.open("sms://:0");
 _mc.setMessageListener(new OutboundSMSListener());

 private static final class OutboundSMSListener implements OutboundMessageListener
 {
    public void notifyIncomingMessage(MessageConnection messageconnection)
    {

      System.out.println("Incoming message received ");
    }

    public void notifyOutgoingMessage(Message message)
    {

      System.out.println("------------------------\n\n\n\n\n");
      System.out.println("Message send: " + message);
    }
 }

有没有办法做到这一点?

4

1 回答 1

0

发送 SMS 的应用程序是否是 BlackBerry 设备的本机应用程序,它是否驻留在前台?

要获取前台应用程序的进程 ID,您可以使用以下代码:

private int getForegroungProcessID() {
        return ApplicationManager.getApplicationManager().getForegroundProcessId();
    }

private String getAppNameByProcessId(int id) {
        String result = null;

        ApplicationManager appManager = ApplicationManager.getApplicationManager();
        ApplicationDescriptor appDes[] = appManager.getVisibleApplications();

        for (int i = 0; i < appDes.length; i++) {
            if (appManager.getProcessId(appDes[i]) == id) {
                result = appDes[i].getModuleName();
                   //// here check the app name...is it a messaging app ///
                break;
            }
        }
        return result;
    }
于 2012-06-11T07:45:53.933 回答