2011-11-07 1 views
1

私のテストアプリを動作しません。つまり、私のDDMSのEclipseで、私はエミュレータに位置座標を送信すると、アプリは、ブロードキャストをキャッチし、マップ内のエミュレータでの位置を表示します。しかし、私の実際の2.3.3アンドロイドデバイスでは、通知バーにgpsが点滅している間、アプリはちょうどハングします。私のサービスクラスでやっていることは次のとおりですロケーションサービスは、実際のAndroidデバイスで、デバイスの現在の場所はエミュレータで正常に動作している見つけ

public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    Log.e("<<MyGpsService-onStart>>", "GPS starting..."); 
    triggerService = new Thread(new Runnable() { 
     public void run() { 
      try { 
       Looper.prepare(); 
       lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
       myLocationListener = new GPSListener(); 
       long minTime = 10000; // frequency update: 10 seconds 
       float minDistance = 50; // frequency update: 50 meter 
       lm.requestLocationUpdates(
         // request GPS updates 
         LocationManager.GPS_PROVIDER, minTime, minDistance, 
         myLocationListener); 
       Looper.loop(); 
      } catch (Exception e) { 
       Log.e("MYGPS", e.getMessage()); 
      } 
     }// run 
    }); 
    triggerService.start(); 
} 
class GPSListener implements LocationListener { 
    public void onLocationChanged(Location location) { 
     double latitude = location.getLatitude(); 
     double longitude = location.getLongitude(); 

     Intent myFilteredResponse = new Intent(GPS_FILTER); 
     myFilteredResponse.putExtra("latitude", latitude); 
     myFilteredResponse.putExtra("longitude", longitude); 
     Log.e(">>GPS_Service<<", "Lat:" + latitude + " lon:" + longitude); 

     sendBroadcast(myFilteredResponse); 
    } 

    public void onProviderDisabled(String provider) { 
    } 

    public void onProviderEnabled(String provider) { 
    } 

    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
};// GPSListenerclass 

私は同じような問題があるのだろうかと思います。ありがとう。

UPDATE:私は、次の質問と答え続く:変更後

Android - Reliably getting the current location

を、アプリはかなり良く働いています。

+1

のために動作します。あなたは外に立ってロックを取得しようとしたことがありますか? GPSアイコンは、点滅を停止し、一度これを行うと固体になります。 – dymmeh

+1

コメントありがとうございます。今私は間違った場所の座標を取得しています。地図の場所はここから5マイル離れています。たぶんそれは再び信号の問題です。しかし、私はGoogleマップをしようとすると、それは正しい場所を示しています。 –

+0

あなたの場所がその範囲内に入るまで(つまり、location.getAccuracy())、何らかのしきい値を作成して聞いてください。その後、場所の受信を停止します。 – Damian

答えて

2

あなたのデバイスのためのlogcatに興味深い何かを取得していますか? adbを使用して、実際のデバイスのlogcatを表示できます。

2

GPSは建物内では機能しません。 GPSは、それはあなたが(通常は内部であることに起因する劣悪な信号から)GPSロックを持っていないことを意味点滅しているとき DDMSの場所はエミュレータ

関連する問題