【问题标题】:Android Apps Cannot Find Location After Installed in DeviceAndroid 应用程序安装到设备后无法找到位置
【发布时间】:2011-11-18 20:08:11
【问题描述】:

我有问题。

我想使用可以确定我当前位置的 Android SDK 开发简单的 LBS 应用。我已经做了一个,并在eclipse中使用模拟器进行了尝试。

据我所知,我必须使用 DDMS 将纬度和经度值发送到模拟器,是的,它可以工作。 现在,我想将它安装在我的 Android 设备上,以确定它是否可以在我的手机上运行。但是,它无法获取我的位置。

我想知道它有什么问题。互联网或我的手机提供商是否确定了我的位置(以在 Eclipse 中使用 DDMS 作为交换)?或者我需要添加一些代码行以使其工作或其他配置?

这是我的代码:

public class PilihFitur extends Activity implements OnClickListener {

    private double mylat = 0.0;
    private double mylon = 0.0;
    private LocationManager locationManager = null;
    private Location location = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pilihfitur);

        View goToMapsButton = findViewById(R.id.toMapsButton);
        goToMapsButton.setOnClickListener(this);
        View goToOrderButton = findViewById(R.id.toOrderButton);
        goToOrderButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.toMapsButton:
            onChangeLocation();
            break;
        default:
            break;
        }
    }

    private void onChangeLocation(){
        locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 10, new myLocationListener());
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        if(location != null){
            mylat = location.getLatitude();
            mylon = location.getLongitude();
            Toast.makeText(PilihFitur.this, "Lokasi Anda: \nLat: "+mylat+" Lon: "+mylon, Toast.LENGTH_LONG).show();
        }
        else
            Toast.makeText(PilihFitur.this, "Lokasi Tidak Ditemukan", Toast.LENGTH_SHORT).show();
    }

    //Location Listener
    private class myLocationListener implements LocationListener{

        @Override
        public void onLocationChanged(Location arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderDisabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }
            }
}

它可以在模拟器上运行,我想知道如何让它在我的手机上运行。谢谢你。

【问题讨论】:

  • 1.你的gps启用了吗?您是否允许清单中的应用访问您的 GPS?

标签: java android location


【解决方案1】:

您在以下位置侦听器方法中检查位置。尝试将代码添加到此方法,并检查您是否获得位置更新。有时,最后一个已知位置可能为空。

@Override
    public void onLocationChanged(Location location) {
    mylat = location.getLatitude();
    mylon = location.getLongitude();
    Toast.makeText(PilihFitur.this, "Lokasi Anda: \nLat: "+mylat+" Lon: "+mylon, Toast.LENGTH_LONG).show();


    }

【讨论】:

  • 这不是关于覆盖,而是关于添加代码以检查正确位置的位置。顺便说一句,还要确保你打开 gps 而不是在室内。
  • 哦,是的。我知道了。感谢您的回答:D
  • 我仍然无法获取我的位置信息。我添加了代码,就像你写的一样。并在户外尝试。但是,它没有用。
  • 在室内真的会搞砸您的 GPS 测试。一天晚上,我撞了一个小时的头,因为它在实际设备上不起作用,当我走到外面时,它在一分钟内就起作用了。此外,如果您注意到 GPS 指示灯“闪烁”,这意味着您的手机仍在尝试修复 - 一旦停止闪烁,您应该被锁定并开始获取更新。
  • 是的。你说得对。我在外面站了几分钟,它更新了我的位置。谢谢你们。我的问题解决了。 :)
猜你喜欢
  • 2020-08-21
  • 2017-08-20
  • 2011-06-05
  • 2022-06-10
  • 2016-12-27
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
相关资源
最近更新 更多