获取设备位置的方法是什么?

时间:2013-02-14 13:58:02

标签: android android-location

我创建了位置管理器服务。有了它,我想赶上瞬间的位置变化。我已经创建了一个服务类LocationListener locationListener = new LocationListener() {@Override public void onLocationChanged(Location newLocation) {。但是,听众似乎反应缓慢。我正在努力改进位置服务类。因此,捕获位置变化的最快,时间,方法和其他方法是什么?

也许,上面的问题对某人来说是荒谬的。一般来说,我想学习“获取设备位置的方法是什么?”

4 个答案:

答案 0 :(得分:1)

您可以使用GPS和互联网地理位置获取用户位置。 这是我找到的最好的教程。 完美工作并通过打开的选项获取位置,如果没有启用,请求您进入设置。

http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

答案 1 :(得分:1)

如果您想自行更改位置,您应该启动一个每隔一段时间获取位置的线程,请记住GPS会耗费大量电池给设备。

欢呼声

答案 2 :(得分:1)

将GPS_PROVIDER分配给您的位置管理员可能需要一些时间才能获得解决方案..如果您不需要准确性,请将NETWORK_PROVIDER分配给您的LocationManger像这样

mLocationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 0, 0,
                mLocationListener);

或者您可以根据拍摄时间在两者之间切换....

答案 3 :(得分:1)

我写了一个可以做到这一点的简单类:

public class GPSPosition {

private double latitude;


private double longitude;


private String date;


public GPSPosition()
{
    LocationManager service = (LocationManager)Minipark.getAppContext().getSystemService(Context.LOCATION_SERVICE);
    boolean isEnabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER);
    Location location = service.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    if (isEnabled)
    {
        if (location != null)
        {

            this.longitude = location.getLongitude();
            this.latitude = location.getLatitude();

            Date locDate = new Date(location.getTime());
            DateFormat df = new SimpleDateFormat("z yyyy.MM.dd. HH:mm:ss");
            df.setTimeZone(TimeZone.getTimeZone("GMT+1"));
            String gmtTime = df.format(locDate);
            int position = gmtTime.indexOf(" ");
            gmtTime = "GMT+1" + gmtTime.substring(position, gmtTime.length());
            this.date = gmtTime; //GMT+1 time
        }
        else
        {
            this.longitude = -100000;
            this.latitude = -100000;
            this.date = "-100000";
        }
    }
    else 
    {
        this.longitude = -100000;
        this.latitude = -100000;
        this.date = "-100000";

    }
}

然后我有一个定时器,每X秒实例化一次GPSPosition类。