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);
    }

 

posted @ 2014-02-24 15:52  sleepend  阅读(380)  评论(0编辑  收藏  举报