2011-06-20 15 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设备的近似,并且它不是敏感的感觉到你你的房子内移动。所以这就是为什么你有一个修复拉/长。

相关问题