Android位置问题

时间:2015-07-28 14:54:47

标签: java android location

我读过这样的帖子,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()方法没有被执行。

我怎么能这样做?

谢谢大家。

0 个答案:

没有答案