2012-02-06 10 views
0

GPS座標を携帯電話からサーバに送信するプログラムを作成しています。この座標を計算に使用します。しかし、私はいつもブラックベリーと壁を打っています。私はAndroid Appを作りましたが、それは素晴らしいですが、実際のブラックベリーデバイスのサーバーに接続できないようです。私はシミュレータでアプリケーションをテストして、それは完全に動作しますが、実際の電話機にインストールすると、電話は必要ありません。ブラックベリー接続ナイトメア

私はので、私は私の最初の使用可能なトランスポートを取得するには、いくつかのデモコードを適応していないが、まだ何もURLの末尾に追加されるように秘密の文字列についてかなり読んだことがある...

アプリケーションが署名されていますと私は通常、eclipse経由でデバッグするか、.jadファイルから直接デバイスにインストールし、アプリケーションに必要な権限を与えます。

現在のコードは、Blackberry SDKのHTTP接続デモから修正されました。

あなたは見て、私にいくつかの方向を与えることができますか?

ConnectionFactory connFact = new ConnectionFactory(); 
ConnectionDescriptor connDesc = connFact.getConnection(getUrl()); 

// Open the connection and extract the data. 
try { 
    // StreamConnection s = null; 
    // s = (StreamConnection) Connector.open(getUrl()); 
    HttpConnection httpConn = (HttpConnection) connDesc.getConnection(); 
    /* Data is Read here with a Input Stream */ 

任意のアイデア:

public void run() { 

     System.out.println("Starting Loop"); 

     Criteria cr = new Criteria(); 
     cr.setHorizontalAccuracy(Criteria.NO_REQUIREMENT); 
     cr.setVerticalAccuracy(Criteria.NO_REQUIREMENT); 
     cr.setCostAllowed(false); 
     cr.setPreferredPowerConsumption(Criteria.NO_REQUIREMENT); 
     cr.setPreferredResponseTime(1000); 
     LocationProvider lp = null; 
     try { 
      lp = LocationProvider.getInstance(cr); 
     } catch (LocationException e) { 
      System.out.println("*****************Exception" + e); 
     } 
     if (lp == null) { 
      UiApplication.getUiApplication().invokeLater(new Runnable() { 
       public void run() { 
        Dialog.alert("GPS not supported!"); 
        return; 
       } 
      }); 
     } else { 

      System.out 
        .println(lp.getState() + "-" + LocationProvider.AVAILABLE); 

      switch (lp.getState()) { 
      case LocationProvider.AVAILABLE: 
       // System.out.println("Provider is AVAILABLE"); 
       while (true) { 
        Location l = null; 
        int timeout = 120; 
        try { 
         l = lp.getLocation(timeout); 
         final Location fi = l; 

         System.out.println("Got a Coordinate " 
           + l.getQualifiedCoordinates().getLatitude() 
           + ", " 
           + l.getQualifiedCoordinates().getLongitude()); 

         System.out.println("http://" + Constants.website_base 
           + "/apis/location?device_uid=" + Constants.uid 
           + "&lat=" 
           + l.getQualifiedCoordinates().getLatitude() 
           + "&lng=" 
           + l.getQualifiedCoordinates().getLongitude()); 

         if (!_connectionThread.isStarted()) { 
          fetchPage("http://" 
            + Constants.website_base 
            + "/apis/location?device_uid=" 
            + Constants.uid 
            + "&lat=" 
            + l.getQualifiedCoordinates().getLatitude() 
            + "&lng=" 
            + l.getQualifiedCoordinates() 
              .getLongitude()); 
         } else { 
          createNewFetch("http://" 
            + Constants.website_base 
            + "/apis/location?device_uid=" 
            + Constants.uid 
            + "&lat=" 
            + l.getQualifiedCoordinates().getLatitude() 
            + "&lng=" 
            + l.getQualifiedCoordinates() 
              .getLongitude()); 
         } 

         Thread.sleep(1000 * 60); 

        } catch (LocationException e) { 
         System.out.println("Location timeout"); 
        } catch (InterruptedException e) { 
         System.out.println("InterruptedException" 
           + e.getMessage()); 
        } catch (Exception ex) { 
         System.err.println(ex.getMessage()); 
         ex.printStackTrace(); 
        } 
       } 
      } 
    } 

マイ・コネクションがで作られている:私は

バックエンドサービスが稼働し続けている...ここにあまりにも多くの髪を失っていますか?

+0

....左の髪を持っています。 –

+0

私はConnectionFactoryを使用していますか?私はそれを間違って使っていますか? –

+0

接続に問題はありますか?彼らはタイムアウトしていますか?または、GPSがタイムアウトしている可能性があります(BBで約1分かかります)。 –

答えて

0

私がオンラインで見つけた関数を使用して、多数のTry/Catchを使用して接続するときに使用する拡張機能。その後、インターネットAPNの設定をしなければならなかった。私は南アフリカでVodacomを使っているので、APNはパスワードなしの「インターネット」です。

はほとんどあなただけのConnectionFactoryを使用し、OS 5.0以上を使用している場合は、何かを追加する必要はありません

+0

BlackBerryはBlackBerryデータプランでプロビジョニングされていますか?もしそうでなければ、それはあなたの困難の原因になるかもしれません。 – Richard

+0

私が知っているわけではありません。私はAPNを使用してそれを理解するので、私はデバイスの放映時間を使用しますか?または、ブラックベリーが提供するインターネットを通って行きますか?ユーザーに余計な費用をかけたくないのですが、私はまだこの問題について少し混乱しています。どんな助け? –

+0

BlackBerry OSは、さまざまな目的に適したネットワークへの接続方法を多数提供しています。後のOS APIでは、複雑さの多くが抽象化されていますが、その抽象化では、デバイスが適切にプロビジョニングされていることが前提です。ダイレクトTCP接続(APN)を使用することは、必ずしも顧客にとって最も安価なオプションではありません。すべての接続オプションの説明については、このリンクをご覧ください:http://supportforums.blackberry.com/t5/Java-Development/Network-Transports/ta-p/446834 – Richard

関連する問題