Java me 调用的平台请求在j2me中不起作用
我正在构建一个电话簿应用程序。我使用lwuit构建ui,所以我的应用程序运行在MIDP2.1和CDLC1.1上。该应用程序面向诺基亚s40设备 当我从我的表单类调用Java me 调用的平台请求在j2me中不起作用,java-me,call,lwuit,midp,Java Me,Call,Lwuit,Midp,我正在构建一个电话簿应用程序。我使用lwuit构建ui,所以我的应用程序运行在MIDP2.1和CDLC1.1上。该应用程序面向诺基亚s40设备 当我从我的表单类调用platformRequest方法时,使用一个常量,如下面的这段代码,其中StartApp是我的主MIDlet try { if (StartApp.getInstance().platformRequest("tel:01239201300") == true) {
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)
我不知道这里的问题是什么?在第二个代码片段中可能有不可见的符号(例如尾随空格) 若要确定是否是这样,请将调试消息修改为类似于
System.out.println(“[”+number+“]”)的内容
,重新运行测试并重新检查输出
更新
似乎在编号的末尾有一个新行字符,编号在注释中显示为,
[tel:01239201300]
(第二个括号出现在注释的下一行)
仅此一项就足以获得无效的电话号码
API文档引用了电话号码URL,它似乎非常严格地指定了第2.2节“tel”URL方案中允许的内容和不允许的内容。在第二个代码段中可能会有不可见的尾随空格。若要确定是否是这样,请将调试消息修改为类似于
System.out.println(“[”+number+“])
,重新运行测试并重新检查输出。数字末尾似乎有一个新行字符,该数字在注释中显示为[tel:01239201300](第二个括号出现在评论的下一行)。谢谢你的帮助,我的问题解决了。