2012-01-10 7 views
0

私はブラックベリー開発で新規です。私は、Webサービスを使ってアプリケーションを開発し、場所を見つけてサーバーにデータを送信するタスクを持っています。ブラックベリーでksoapを使用してアプリケーションを開発する

私はsoap要求のための次のコードを開発しましたが、私はそれを私の携帯電話に実行しても何も起こっていません。さらにはデータもサーバーに送信されません。私に手伝ってください、このソースコードのためのガイドを提供してください。

final class MyScreen extends SplashScreen { 

    private String serviceUrl = "myurl/GPStracker.asmx"; 
    private String serviceNamespace = "http://tempuri.org/"; 
    private String soapAction = "http://tempuri.org/GPSUnikeylogin"; 
    private String methodName = "GPSUnikeylogin"; 

    private String imei = GPRSInfo.imeiToString(GPRSInfo.getIMEI(), false); 

    private BasicEditField roundedBorderEdit = null; 
    private ButtonField bf; 
    private String responseBody; 
    Hashtable persistentHashtable; 
    PersistentObject persistentObject; 
    static final long KEY = 0x9df9f961bc6d6baL; 

    public MyScreen(Bitmap popup, int seconds) { 
      super(Bitmap.getBitmapResource("bg.png"), 5); 

       //persistentObject = PersistentStore.getPersistentObject(KEY); 
       roundedBorderEdit = new BasicEditField(); 
       roundedBorderEdit = new BasicEditField("","",50,EditField.EDITABLE | EditField.FILTER_NUMERIC | EditField.FIELD_HCENTER) { 
        public void paint(Graphics g) { 
         super.paint(g); 
         g.drawRect(0, 0, getWidth(), getHeight()); 
        } 
       }; 
       add(roundedBorderEdit); 

       bf = new ButtonField ("Register", Field.FOCUSABLE); 
       bf.setChangeListener(new FieldChangeListener(){ 
        public void fieldChanged(Field field, int context) { 

         callWebService(); 

        } 
       }); 
       add (bf); 

    } 
    private void callWebService() 
    { 
     String e = "123";//MyScreen.this.roundedBorderEdit.getText(); 
     //Dialog.alert(e.toString()); 

     SoapObject rpc = new SoapObject(serviceNamespace, methodName); 
     //Dialog.alert(rpc.toString()); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

     rpc.addProperty("vUnikey",e.toString()); 
     rpc.addProperty("vImei_No",imei.toString()); 

     //Dialog.alert(rpc.toString()); 
     envelope.setOutputSoapObject(rpc); 
     envelope.bodyOut = rpc; 
     envelope.dotNet = true; 
     envelope.encodingStyle = SoapSerializationEnvelope.XSI; 

     HttpTransport ht = new HttpTransport(serviceUrl);//+ ";deviceside=true;apn=blackberry.net"); 

     Dialog.alert(ht.toString()); 

     //HttpTransport ht = new HttpTransport(serviceUrl); 
     ht.debug = true; 
     ht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
     //Dialog.alert("set to xml"); 
     String result= null; 

     try{ 

      ht.call(soapAction, envelope); 
      Dialog.alert(ht.toString()); 
      result = (envelope.toString()); 
      Dialog.alert(result.toString()); 
     } 

     catch (org.xmlpull.v1.XmlPullParserException ex2) { 
     } 

     catch (Exception ex) { 
      String bah = ex.toString(); 
      System.out.println(bah); 
     } 
    } 
} 

上記のコードでは、ht.call(soapAction、envelope)まで呼び出しています。その後、私はサーバーから何の応答も得ていない。私はまた、インターネットアクセスやデバイスからの他のアクセスの許可を与える適切な方法を得ていません。

soap封筒の助けを借りてデータをアップロードするための手伝ってください。

+0

oops。別のスレッドでネットワーク接続を行ってください。 – rfsk2010

+0

@ rfsk2010返信ありがとうございます。私のコードのどの部分を別のスレッドに保存する必要があるかを教えてください。 –

答えて

0

ksoap2-androidプロジェクトを参照してください。そのコードはまだJava 1.3/Java MEと互換性があり、ブラックベリーデバイスでうまく動作するはずです。

関連する問題