我正在尝试使用GPS设计我的第一个Android应用程序.截至目前,我有一个可绘制的按钮,单击该按钮可向Toast消息发出经度和纬度警报.我尝试使用telnet localhost 5554,然后使用地理修复#number #number输入值,但没有结果仅显示00.我还尝试了使用DDMS发送GPS坐标的方法,并且得到了相同的结果.
我的问题是,使用地理定位和DDMS发送坐标的正确方法到底是什么?我使用过Location,LocationManger和LocationListener,但不确定哪一个是正确的选择.
给出代码,以防万一代码中存在错误
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.track);
button.setOnClickListener(this);
LocationManager location =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location loc = location.getLastKnownLocation(location.GPS_PROVIDER);
updateWithNewLocation(loc);
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
private void updateWithNewLocation(Location l) {
longitude = l.getLongitude();
latitude = l.getLatitude();
provider = l.getProvider();
}
public void onClick(View v) {
Toast.makeText(this, "Your location is " +
longitude + " and " + latitude + " provided by: " +
provider, Toast.LENGTH_SHORT).show();
}
}
解决方法:
两件事情
1)使经纬度易变
2)尝试注册为GPS位置管理器的侦听器
location.requestLocationUpdates(LocationManager.GPS,100,1,locationListener);
那应该使您的回调发送到locationListener对象.
您可以在此处查看一些示例Android GPS代码:
http://www.devx.com/wireless/Article/43005
(警告!自从我添加了此链接以来,DevX已添加了注册登录!)