Blackberry MessageConnection.receive()由于某种原因停止

Blackberry MessageConnection.receive()由于某种原因停止,blackberry,sms,capture,Blackberry,Sms,Capture,我正在开发一个黑莓应用程序,它可以从设备中捕获短信。 但是,由于某些未知事件,MessageConnection.receive()无法接收消息,或者没有调用notifyIncomingMessage 我们仍在捕获设备发出的消息 我没有用户的设备访问权限来检查日志。下面是捕获传入/传出消息的代码 请告知,我如何修复此错误/问题 Salman在notifyIncomingMessage()中使用_mc而不是conn有什么原因吗?我假设您设置了_mc=mconn,但不是最佳实践。在不知道抛出了什么

我正在开发一个黑莓应用程序,它可以从设备中捕获短信。 但是,由于某些未知事件,MessageConnection.receive()无法接收消息,或者没有调用notifyIncomingMessage

我们仍在捕获设备发出的消息

我没有用户的设备访问权限来检查日志。下面是捕获传入/传出消息的代码

请告知,我如何修复此错误/问题


Salman

在notifyIncomingMessage()中使用_mc而不是conn有什么原因吗?我假设您设置了_mc=mconn,但不是最佳实践。在不知道抛出了什么异常(如果有)的情况下,可能很难进行诊断。@Richard:我试图为这篇文章简化代码。它是-->消息m=mconn.receive();好吧,就像我在不知道任何例外情况的情况下说的,我要冒险了。我注意到,当侦听器被调用时,过程上下文并不总是您所期望的。您可能应该使用传入的MessageConnection对象,或者至少按照API文档中的示例检查它是否是您期望的对象。但就像我说的,这是我的危险。一个更普通的原因可能是其他语句中的一个例外。我刚刚发现了关于MessageConnection的这一点。setMessageListener(object)-->“在任何给定的时间点,最多可以为MessageConnection对象注册一个listener对象。设置一个新的listener将取消注册任何以前设置的listener”。当其他应用程序注册MessageConnection.setMessageListener(对象)时,我的类事件(notifyIncomingMessage)是否可能不调用?仅当您已将MessageConnection对象传递给该其他应用程序,以便它可以在其上注册侦听器时。
MessageConnection mconn = (MessageConnection)Connector.open("sms://:0"); 
mconn.setMessageListener(this);

....

public void notifyIncomingMessage(MessageConnection conn) {

    try
    {
         Message m = _mc.receive();
         String address = m.getAddress();
         String msg = null;
          if ( m instanceof TextMessage )
          {
               TextMessage tm = (TextMessage)m;
               msg = tm.getPayloadText();
               sendToServer(msg);
          }          
          else
               { // do nothing}
    }
    catch(Exception ee)
    {
        LogError(ee);
    }
}


public void notifyOutgoingMessage(javax.wireless.messaging.Message message) 
{

    TextMessage tmsg = (TextMessage)msg;
    String msgtPayload = tmsg.getPayloadText(); 
        sendToServer("OUT",msgtPayload);
}