// 状态监听
    GpsStatus.Listener listener = new GpsStatus.Listener() {
         public void onGpsStatusChanged( int event) {
             switch (event) {
             // 第一次定位
             case GpsStatus.GPS_EVENT_FIRST_FIX:
                Log.i(TAG, "第一次定位");
                break;
             // 卫星状态改变
             case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                Log.i(TAG, "卫星状态改变");
                // 获取当前状态
                GpsStatus gpsStatus=lm.getGpsStatus( null);
                // 获取卫星颗数的默认最大值
                int maxSatellites = gpsStatus.getMaxSatellites();
                // 创建一个迭代器保存所有卫星
                Iterator<GpsSatellite> iters = gpsStatus.getSatellites().iterator();
                int count = 0;     
                while (iters.hasNext() && count <= maxSatellites) {     
                    GpsSatellite s = iters.next();     
                    count++;     
                }   
                System.out.println("搜索到:"+count+"颗卫星");
                break;
             // 定位启动
             case GpsStatus.GPS_EVENT_STARTED:
                Log.i(TAG, "定位启动");
                break;
             // 定位结束
             case GpsStatus.GPS_EVENT_STOPPED:
                Log.i(TAG, "定位结束");
                break;
            }
        };
    };
   
    /**
     * 实时更新文本内容
     *
     *
@param location
     
*/
    private void updateView(Location location){
         if(location!= null){
            editText.setText("设备位置信息\n\n经度:");
            editText.append(String.valueOf(location.getLongitude()));
            editText.append("\n纬度:");
            editText.append(String.valueOf(location.getLatitude()));
        } else{
             // 清空EditText对象
            editText.getEditableText().clear();
        }
    }
   
    /**
     * 返回查询条件
     *
@return
*/
    private Criteria getCriteria(){
        Criteria criteria= new Criteria();
         // 设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细
        criteria.setAccuracy(Criteria.ACCURACY_FINE);   
         // 设置是否要求速度
        criteria.setSpeedRequired( false);
         // 设置是否允许运营商收费  
        criteria.setCostAllowed( false);
         // 设置是否需要方位信息
        criteria.setBearingRequired( false);
         // 设置是否需要海拔信息
        criteria.setAltitudeRequired( false);
         // 设置对电源的需求  
        criteria.setPowerRequirement(Criteria.POWER_LOW);
         return criteria;
    }
}