2012-01-10 3 views
0

je suis nouveau dans le développement de blackberry. et j'ai la tâche de développer l'application en utilisant le service Web pour trouver l'emplacement et envoyer les données au serveur.Développer l'application en utilisant ksoap dans blackberry

J'ai développé le code suivant pour la demande de savon, mais quand je le lance sur mon mobile rien ne se passe. et même les données ne sont pas envoyées au serveur. S'il vous plaît aidez-moi et fournissez un guide pour ce code source.

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); 
     } 
    } 
} 

Dans le code ci-dessus je reçois l'appel jusqu'à ht.call (soapAction, enveloppe); après cela, je ne reçois aucune réponse du serveur. et je ne reçois pas la bonne façon de donner la permission pour l'accès à Internet et d'autres accès de l'appareil.

Alors s'il vous plaît aidez-moi et fournissez-moi une étape pour télécharger des données avec l'aide de l'enveloppe de savon.

+0

oups. s'il vous plaît faire la connexion réseau sur un fil séparé – rfsk2010

+0

@ rfsk2010 merci pour la réponse s'il vous plaît expliquez-moi quelle partie de mon code dois-je garder dans un fil séparé. –

Répondre

0

Vous pourriez vouloir regarder le projet ksoap2-android. Son code est toujours Java 1.3/Java ME compatible et devrait fonctionner très bien sur les appareils BlackBerry.

Questions connexes