1

電話帳のアプリケーションを作成しています。私はUIの構築にlwuitを使用しているので、アプリケーションはMIDP2.1とCDLC1.1で実行されています。このアプリケーションは、nokias40デバイスを対象としています。

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

2 番目のコード スニペットには、目に見えない記号 (末尾のスペースなど) が含まれる可能性があります。

そうであるかどうかを確認するには、デバッグ メッセージを のように変更しSystem.out.println("[" + number + "]")、テストを再実行して、出力を再確認します。

アップデート

数字の最後に改行文字があるようです。数字はコメントに次のように表示されます[tel:01239201300 ](2番目の括弧はコメントの次の行に表示されます)。

それだけで を取得するのに十分なようですInvalid Phone Number

MIDlet.platformRequestの API ドキュメントは、電話番号の URL についてRFC2806参照しており、セクション2.2 の「tel」URL スキームで何が許可され、何が許可されていないかをかなり厳密に指定しているようです。

于 2012-06-20T17:21:58.193 に答える