【问题标题】:Android GPS cloud of confusion!Android GPS 云的混乱!
【发布时间】:2009-10-13 01:36:53
【问题描述】:

我正在尝试使用 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个空格开头,全部变成一个大块。
  • 您观察到什么实际问题?它只是无法获得任何坐标吗?它是否返回虚拟数据?它会抛出异常吗?

标签: android gps emulation ddms


【解决方案1】:

两件事

1) 使经纬度易变

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

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

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

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

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

【讨论】:

  • 示例代码指向一个带有注册墙的站点。真烦人。
  • 哎呀!这很烦人!抱歉,我认为devX在上个月左右添加了注册登陆:-(在答案中添加了警告。
  • 要绕过付费墙,请将网址粘贴到谷歌搜索中,然后点击它。他们不能向 google 显示与向您显示不同的页面(通过 google)。
【解决方案2】:

评论该行 位置 loc = location.getLastKnownLocation(location.GPS_PROVIDER);

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

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

【讨论】:

  • 当我遇到问题时,我已经尝试按照您的建议进行操作,尽管现在它已修复并且不再是什么大问题。它不起作用的原因是我没有为我的位置更新注册一个监听器。还是谢谢你的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
相关资源
最近更新 更多