public class WhereamI extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_wheream_i);
LocationManager locationmanager;
String context = Context.LOCATION_SERVICE;
locationmanager = (LocationManager) getSystemService(context);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(true);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationmanager.getBestProvider(criteria, true);
Location location = locationmanager.getLastKnownLocation(provider);
updatewithnewlocation(location);
locationmanager.requestLocationUpdates(provider, 2000, 10,
locationlistener);
}
private final LocationListener locationlistener = new LocationListener() {
private Location location;
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onProviderDisabled(String arg0) {
updatewithnewlocation(null);
}
@Override
public void onLocationChanged(Location arg0) {
updatewithnewlocation(location);
}
};
private void updatewithnewlocation(Location location) {
String latLongString;
TextView Text1;
Text1 = (TextView) findViewById(R.id.Text1);
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
double alt = location.getAltitude();
latLongString = "Lat: " + lat + " Lon " + lng + " Altitude "
+ alt + "feet";
} else {
latLongString = "No Location Found: Sorry.";
}
Text1.setText("Your Current Position Is \n :" + latLongString);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.wheream_i, menu);
return true;
}
}
我寫了一個代碼,通過GPS查找我的設備的當前位置。問題是設備大多數時間沒有給出任何位置。但是,當我在代碼中進行一些更改並將更改(或啓動應用程序)上載到我的設備時,它會提供該位置。 這個應用程序的目的是找到位置的變化,並給予長期和緯度的價值,甚至altėude。我不知道該應用程序出了什麼問題。有人可以嗎?通過GPS尋找位置
您並未檢查是否打開了最佳位置提供程序。如果它關閉,那麼你應該打開它,然後獲得位置。 –
最初,如果您從未使用過GPS或網絡來獲取您的位置,那麼您將始終得到「找不到位置:對不起」。要獲得一個位置,現在必須將2000和10設置爲0,0否則,您將在20秒或5米位置更改後開始獲取位置。 –