【问题标题】:Android location problems安卓定位问题
【发布时间】:2015-07-28 14:54:47
【问题描述】:

我读过这样的帖子,android getlastknownlocation returns null,但除了已知位置之外,我还有一个问题。

我知道,如果我没有任何提供程序,我就无法获得任何已知位置 getLastKnowedLocation()。但是,当检测到提供者时如何获取位置?

我使用这个代码:

 public void myPosition() {
    if (mapa.getMyLocation() != null)
        mapa.animateCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng( mapa.getMyLocation().getLatitude(), mapa.getMyLocation().getLongitude()), 13));
    else{
        loca = locaMan.getLastKnownLocation(bestProvi);

        if (loca != null)
        mapa.moveCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng( loca.getLatitude(), loca.getLongitude()), 15));

    }
}
public void onLocationChanged(Location location) {
    myPosition();
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    myPosition();
}

@Override
public void onProviderEnabled(String provider) {
    myPosition();
    Toast toast1 =Toast.makeText(getApplicationContext(),"Provider ON", Toast.LENGTH_SHORT);
    toast1.show();
}

@Override
public void onProviderDisabled(String provider) {
    Toast toast1 =Toast.makeText(getApplicationContext(),"Provider OFF", Toast.LENGTH_SHORT);
    toast1.show();
}

但是当提供者被激活时,它不会执行方法 onProviderEnabled() 的代码,只有当我在我的智能手机上关闭并打开 GPS 时。

当我启动应用程序时,我看到了一张地图,并且在我看到我的位置上方有一个蓝点 5 秒后,但 myPosition() 方法没有被执行。

我该怎么做?

谢谢大家。

【问题讨论】:

  • myPosition() 方法没有执行。你如何验证?
  • 一开始在onCreate()中执行,但没有找到任何provider,任何不符合任何“if”的更改。但是在 OnStatusChanged () 或 onProviderEnabled () 部分它什么也不做。虽然在地图上我的位置上的蓝点在五秒钟后出现,但它没有被检测为更改或提供程序激活。这一切都通过 Android Studio 调试器进行了验证。

标签: java android location


【解决方案1】:

我试图搜索相关内容,并在以下链接中找到了方法 requestLocationUpdates():12(西班牙语),但它在我的项目中不起作用。

所以我不得不搜索更多但从其他方式,因为我的问题不是位置,而是相机移动到这个位置。我找到了 TimerTask 库并使用了它。

我将此代码添加到其他代码中:

 public class TimerClass extends TimerTask{
        public void run () {
            runOnUiThread(new Runnable() {
                @Override
                public void run () {
                    if(!pass) {
                        myPosition();
                    }
                }
            });
        }
}

它是 MainActivity 类中的一个类。

我不知道它是否正确,但它运行没有任何问题。如果有人知道解决此问题的其他方法,请回答此评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2018-07-03
    • 2014-02-19
    • 2011-06-12
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多