2011-12-07 12 views
0

毎分自分の場所を追跡したいと思います。そのため私はlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 0, pll);Androidのリクエスト場所携帯電話のアイドル時に更新する

私の電話がアイドル状態のときのログです。

Date  Latitude    Longitude   Accuracy 
07:45:35 51.362402459999996 - 6.2174867399999995 (75.0) 
07:46:35 51.362402459999996 - 6.2174867399999995 (75.0) 
07:47:35 51.362402459999996 - 6.2174867399999995 (75.0) 
... 
07:50:35 51.362402459999996 - 6.2174867399999995 (75.0) # I'm further than 75m away from my home at that time 

私は本当に1分ごとに新しい場所を持っていますが、まったく同じです。ちょうど時間が更新されます。位置は更新されません(私が十分動かない場合は普通かもしれません)が、座標がまったく同じであることは奇妙です。また、私は無線起動していないので、それはCellId(〜1000mの精度で)に応じて私を配置する必要があります、ここで私はまだ75.0の精度があります。それは、ワイヤレスネットワークを使って記録された最後の場所だと思われます。

実際の最後の場所(低精度でも)をどのように記録できますか?

public void onLocationChanged(Location location) { 
    System.out.println(new Date(location.getTime())+" " 
      +location.getLatitude()+" - "+location.getLongitude()+" ("+location.getAccuracy()+")"); 
    callback.addEntry(location); 
} 
+0

はあなたが(あなたのonLocationChangedを確認しなかった

  • )root権限が必要だと思いますか – user370305

    +0

    ログラインはonLocationChanged()メソッドで表示されます –

    答えて

    0

    ワイヤレス接続が存在しない場合に限り、CellTowerでLocationManagerを使用して位置を計算する方法がないようです。 もう1つの方法は、スレッドPoor Man GPSに記載されている方法を使用することです:CellIdを知っている位置を手動で計算します。

    擬似コード:

    onLocationChanged(new_location) 
        if isConnected() 
         record(new_location) 
        else 
         cell_location = poorManGPS() 
         record(cell_location) 
        end 
    

    問題は、私はノーインターネット接続がセルIDデータベースを照会することはできません、もちろんです。私は、インターネットを持っていると私はインターネット

  • 電話でcell id databaseを使用していないとき、私はこの1つに滞在いただければ幸いとき(

    • ストア、現在の(および以前の)セルID:私はいくつかのソリューションを参照してくださいしかし、私はすべて1分で呼ばれる?)ストアさらに局在化のためのセルID
  • 0

    コード

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, pll); 
    

    下のあたりNETWORK_PROVIDERあなたはGSMタワー最寄りの持っている正確な場所

    +0

    しかし、GPSが有効になっていない(ほとんどの場合)、私は何も受信しません。 –

    +0

    gpsを有効にする必要があります。そうでない場合は、gpsの場所を取得できるようにモバイルを衛星に直接接続する必要があります。 GPSのみが正確な位置を変更することができます... – Maneesh

    +0

    私の目標は最高の位置推定をすることではありませんが、利用可能なものを使って自分の位置をどのように知ることができますか?私の電話が盗まれた場合は、泥棒にSMSを送信せずに「どこにでもGPSを入れて外に出て行かなくても」+/-の位置を特定できます。 –

    0

    を変更するあなたを与えるの塔の場所とGPSを修正するだけで、あなたを与えるだろうとちょっと代わりにNETWORK_PROVIDERのGPS_PROVIDERを使用座標。

    +0

    精度は75mですか? GSMタワー(キャッシュ内にある)だけで、Googleマップは通常1000mの精度で私を見つけます。 wirlessをオンにすると、位置が変わります(それぞれのアップデートで少し違いますが)が、正確さは同じです。 –