1

我正在构建电话簿的应用程序。我正在使用 lwit 进行 ui 构建,因此我的应用程序在 MIDP2.1 和 CDLC1.1 上运行。该应用程序针对诺基亚 s40 设备。

当我platformRequest从我的表单类中调用该方法时,我使用下面这段代码中的常量编号,StartApp我的主要 MIDlet 在哪里。

     try 
        { 
    if (StartApp.getInstance().platformRequest("tel:01239201300") == true)
          {
            StartApp.getInstance().notifyDestroyed();
          }
       }
     catch(Exception ex)
     {
        System.out.println(ex);
     }

应用程序运行正确并生成了一个呼叫请求,但是如果我尝试像下面的这段代码一样进行这项工作

   try{   
     String number = "tel:" + lblTelNumber.getText();
        System.out.println(number);
        if (StartApp.getInstance().platformRequest(number) == true)
        {
            StartApp.getInstance().notifyDestroyed();
        }
     }
   catch(Exception ex)
    {
        System.out.println(ex);
    }

这会导致以下异常。

ordinary platformRequest: tel:01239201300 
URL is : tel:01239201300 
javax.microedition.io.ConnectionNotFoundException: Invalid Phone Number
at javax.microedition.midlet.MIDlet.platformRequest(+76)
at package1.InformationForm.Call(+48)

我不知道这里有什么问题?

4

1 回答 1

2

您的第二个代码片段中可能会有不可见的符号(例如尾随空格)。

要确定是否如此,请将调试消息修改为类似的内容System.out.println("[" + number + "]"),重新运行测试并重新检查输出。

更新

似乎数字末尾有一个换行符,数字出现在注释中,[tel:01239201300 ](第二个括号出现在注释的下一行)。

好吧,仅此一项似乎就足够了Invalid Phone Number

MIDlet.platformRequest的 API 文档参考RFC2806,用于电话号码 URL,它似乎非常严格地指定了2.2 节“tel” URL 方案中允许和不允许的内容。

于 2012-06-20T17:21:58.193 回答