我能够获得Galaxy pop,galaxy y中当前位置的当前纬度和经度。但是我无法获得HTC探索中的当前位置?
我使用的编码如下:
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
locationManager.requestLocationUpdates(provider, 1, 1, locationListener);
crta = new Criteria();
crta.setAccuracy(Criteria.ACCURACY_FINE);
crta.setAltitudeRequired(false);
crta.setBearingRequired(false);
crta.setCostAllowed(true);
crta.setPowerRequirement(Criteria.POWER_LOW);
//String provider = locationManager.getBestProvider(crta, true);
String provider = LocationManager.GPS_PROVIDER;
location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
}
private void updateWithNewLocation(Location location) {
String latLong;
`enter code here`// myLocation = (TextView) findViewById(R.id.myLocation);
String addressString = "no address found";
if(location!=null) {
System.out.println("Provider " + provider + " has been selected.");
lat = (Double) (location.getLatitude());
lng = (Double) (location.getLongitude());
// Gomathi
double valueofGPSlat = lat * 1000;
int GPSsum = (int) valueofGPSlat;
GPSvalue = (double) GPSsum / 1000;
// Get Current Location
latt = Double.toString(GPSvalue);
// Getlon
double valueofGPSlng = lng * 1000;
int resultGPSsum = (int) valueofGPSlng;
resultGPSvalue = (double) resultGPSsum / 1000;
longt = Double.toString(resultGPSvalue);
// GomathiEnd
} else {
latLong = " NO Location Found ";
}
//myLocation.setText("your Current Position is :\n" +latLong + "\n " + addressString );
Toast.makeText(UsertaskoptionsActivity.this,"your Current Position is :\n" +latt + "\n " + ""+longt , Toast.LENGTH_LONG).show();
}
private LocationListener locationListener = new LocationListener()
{
@Override
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
private void updateWithNewLocation(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
答案 0 :(得分:0)
如果相应的提供商尚未检索到某个位置,则您不会获得最后一个已知位置。你可以尝试先运行一些其他使用gps的应用程序。通常,您应该将您的应用注册到位置更新 看一下关于“获取用户位置”http://developer.android.com/guide/topics/location/obtaining-user-location.html
的android开发指南