2011-06-20 52 views
0

我下面的代碼有問題。我的手機沒有GPS/WIFI/3G。我想從network_provider中找到用戶位置,但由於某些原因,它在手機上給出了0.0和0.0的經度和緯度。請幫忙。我的代碼如下:無法通過Android中的Network_Provider獲取位置數據!

LocationManager mlocManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE); 
      LocationListener mlocListener = new MyLocationListener(); 
      mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); 
      TextView txt=(TextView)findViewById(R.id.coordinate); 
      txt.setText(latid+","+longid+","+accu+"m "+provider); 

和requestLocationUpdates如下:

public class MyLocationListener implements LocationListener 
{ 
@Override 
public void onLocationChanged (Location loc) 
{ 
    latid=loc.getLatitude(); 
    longid=loc.getLongitude(); 
    accu=loc.getAccuracy(); 
    TextView txt=(TextView)findViewById(R.id.coordinate); 
    txt.setText(latid+","+longid+","+accu+"m"); 
    Toast.makeText (getApplicationContext(),"Entered function",Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onProviderDisabled (String provider) 
{ 
Toast.makeText (getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onProviderEnabled (String provider) 
{ 
Toast.makeText (getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT) .show(); 
} 

@Override 

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

}/* End of Class MyLocationListener */ 

我想知道我爲什麼讓所有的輸出爲緯度和長0.0和0.0。 我還注意到另外一件事,如果我連接到家庭無線網絡,那麼這可以解決我的經緯度問題。我想知道爲什麼沒有WIFI/3G/GPS無法修復! 任何幫助將不勝感激。

回答

1

你有0.0 0.0,

這是因爲原來的GeoPoint的緯度和經度爲100萬倍比它曾經是。

如果你的gps 3g wifi有什麼問題,它會彈出異常而不是0.0.0.0。

因此,如果您要指定一對拉的,長的GeoPoint對象,請提醒youself與

location.latitude的價值* 1000000 = Geopoint.latitude的價值

location.longitude的價值*長您當前的位置1000000 = Geopoint.longitude的價值

**

洛杉磯/基於WiFi設備的近似,並且它不是敏感的感覺到你你的房子內移動。所以這就是爲什麼你有一個修復拉/長。

相關問題