3

我正在尝试使用 GPS 设计我的第一个 Android 应用程序。截至目前,我有一个可绘制的按钮,单击该按钮会提醒经度和纬度的 Toast 消息。我尝试使用telnet localhost 5554然后geo fix #number #number来输入值,但没有结果显示0 0。我也尝试过 DDMS 发送 GPS 坐标的方式,我得到了同样的结果。

我的问题是使用地理修复和发送坐标的 DDMS 方式的正确方法到底是什么。我用过LocationLocationMangerLocationListener我不确定哪个是正确的选择。

给出了代码,以防万一代码存在错误

@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();          
   }     
}
4

2 回答 2

3

两件事情

1)使经纬度不稳定

2) 尝试注册为 GPS 位置管理器的监听器

location.requestLocationUpdates(LocationManager.GPS, 100, 1, locationListener);

这应该让您将回调发送到您的 locationListener 对象。

您可以在此处查看一些示例 Android GPS 代码:http: //www.devx.com/wireless/Article/43005

(警告!自从我添加此链接后,DevX 已添加注册登陆!)

于 2009-10-13T18:32:15.457 回答
1

注释 Location loc = location.getLastKnownLocation(location.GPS_PROVIDER);

并通过在 ddms 中手动更新 gps 来测试应用程序

如果可行,请返回代码然后输入 Location loc = location.getLastKnownLocation("gps");

于 2010-01-21T17:28:52.437 回答