android 手机定位

android手机定位,只有代码,已经实现locationListener接口

    private String providerName;

    LocationManager lm;



    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        init();

    }



    private void init()

    {

        // 获取当前用户位置

        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 定位服务

        // List<String> lp = lm.getAllProviders();// 得到所有定位方式

        Criteria criteria = new Criteria();// 定位功能标准

        criteria.setAccuracy(Criteria.ACCURACY_FINE);// 精度要求(高)

        // criteria.setAltitudeRequired(false);// 是否返回海拔信息

        // criteria.setBearingRequired(false);// 是否返回方位信息

        // criteria.setCostAllowed(true);// 收费

        // criteria.setPowerRequirement(Criteria.POWER_LOW);// 电量要求低

        // criteria.setSpeedRequired(false);// 是否返回速度信息

        providerName = lm.getBestProvider(criteria, true);

        Location location = lm.getLastKnownLocation(providerName);

        if (location != null)

        {

            Member.latitude = location.getLatitude() * 1e6;

            Member.longitude = location.getLongitude() * 1e6;

        } else

        {

            System.out.println("请检查网络连接");

        }



    }



    @Override

    public void onStatusChanged(String provider, int status, Bundle extras)

    { // 在Provider的状态在可用、暂时不可用和无服务三个状态直接切换时被调用。

        Log.v("gprs", "status");

    }



    @Override

    public void onProviderEnabled(String provider)

    { // 定位功能开启

        Log.v("gprs", "enabled");

    }



    @Override

    public void onProviderDisabled(String provider)

    {

        // 使用中的定位方式关闭时的事件

        Log.v("gprs", "disabled");

    }



    @Override

    public void onLocationChanged(Location location)

    {

        // 位置发生改变时

        Member.latitude = location.getLatitude() * 1e6;

        Member.longitude = location.getLongitude() * 1e6;

    }



    @Override

    protected void onResume()

    {

        // 再次调用时,更新经纬度

        super.onResume();

        // 每5秒或10m进行一次定位

        lm.requestLocationUpdates(providerName, 5000, 10, this);

    }



    @Override

    protected void onPause()

    {

        // 切换页面时停止服务

        super.onPause();

        lm.removeUpdates(this);

    }

 

你可能感兴趣的:(android)