Android开发googleMap+GPS定位中的关于Criteria一知半解问题

来源:互联网 发布:梦里花落知多少沐紫苏 编辑:程序博客网 时间:2024/06/05 13:35
 

正在做一个有关googleMap+GPS的应用,之前有一个困扰近一个月的莫名问题,就是程序对googlemap初始化时出现异常之后应用便很“优雅”的挂掉,但值得注意的问题是在模拟器上跑这个应用,嘛问题也没有,在真机上,多数的真机“挂机”,只有少数的真机正常。这个对于java程序员来说,绝不亚于uncatch exception异常的打击。

今天仔细看书,看到如下一段代码:

view plaincopy to clipboardprint?
  1. LocationManager locationManager = (LocationManager)SH.getSystemService(Context.LOCATION_SERVICE);  
  2.               
  3.                   
  4.                 Criteria criteria = new Criteria();  
  5.                 criteria.setAccuracy(Criteria.ACCURACY_COARSE);  
  6.                 criteria.setAltitudeRequired(false);  
  7.                 criteria.setBearingRequired(false);  
  8.                 criteria.setCostAllowed(true);  
  9.                 criteria.setPowerRequirement(Criteria.POWER_LOW);  
  10.                 String provider = locationManager.getBestProvider(criteria, true);  
  11.                   
  12.                 Location location = locationManager.getLastKnownLocation(provider);  

主要说说这个Criteria是个什么玩意,Criteria直译很明显是“精确度”的意思,那么在android的GPS开发中Criteria类提供若干个查询条件:

(1) public void setAccuracy( int accuracy )

位置解析的精度,高或低,参数: Criteria. ACCURACY_FINE,精确模式; Criteria. ACCURACY_COARSE,模糊模式;

(2) public void setAltitudeRequired(boolean altitudeRequired )

是否提供海拔高度信息,是或否

(3) public void setBearingRequired( boolean bearingRequired )

是否提供方向信息,是或否

(4) public void setCostAllowed( boolean costAllowed )

是否允许运营商计费,是或否

(5) public void setPowerRequirement( int level )

电池消耗,无、低、中、高,参数 Criteria. NO_REQUIREMENT, Criteria. POWER_LOW, Criteria. POWER_MEDIUM, or Criteria. POWER_HIGH,

(6) public void setSpeedRequired( boolean speedRequired )

是否提供速度信息,是或否

 

好,说说“ 神奇 ”的问题,早上刚打开eclipse,上面所示代码便映入眼帘,或许是灵光突现,想想之前莫名的错误,直接便把

view plaincopy to clipboardprint?
  1. criteria.setAccuracy(Criteria.ACCURACY_FINE);  
  2. criteria.setAltitudeRequired(false);  
  3. criteria.setBearingRequired(false);  
  4. criteria.setCostAllowed(true);  
  5. criteria.setPowerRequirement(Criteria.POWER_LOW);  

这段选中给“Ctrl+/”掉,之后再几部android测试手机上挨个跑一次,竟全部顺利通过!

挨行解掉注释行之后发现问题是出在criteria.setAccuracy(ACCURACY_FINE)这个方法上,于是索性尝试一下将 ACCURACY_FINE更改为 Criteria.ACCURACY_COARSE,问题迎刃而解,可见问题就是在这“精确度”的问题上,把精确度设置为模糊,所有手机跑起来了。同时未解的问题来了,android手机一般都是支持精确定位的(AGPS ),这个我在各个论坛中看到有人说过,但就是不说该如何系统设置这种GPS定位模式,你们知道吗?

http://blog.csdn.net/tiewantn/article/details/6093592

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 法院判决离婚一方不签字怎么办 法院判决离婚对方不签字怎么办 法院已判决被告没有钱怎么办 判决还款但是的确没有钱怎么办 强执执行没有钱怎么办 法院判了没钱还怎么办 判决后对方不给钱怎么办 欠钱判决后没钱怎么办 判决了还不给钱怎么办 驾驶证到期本人在监狱服刑怎么办 轻伤过了追诉期怎么办 判决生效书丢了怎么办 高层17楼水压低怎么办 高层六楼水压低怎么办 高层6楼水压低怎么办 高层5楼水压低怎么办 高层五楼水压小怎么办 高层四楼水压低怎么办 高层6楼水压不够怎么办 马桶水箱盖坏了怎么办 马桶水箱盖子坏了怎么办 绿萝的叶子黄了怎么办 绿萝叶子烂了怎么办 还款协议签订后一方反悔怎么办 签了协议想反悔怎么办 体温计打碎了水银找不到了怎么办 模拟城市5核电站爆炸怎么办 日本地铁票丢了怎么办 在日本地铁票丢了怎么办 首付交了没合同怎么办 工程干完不给签合同怎么办 寄存密码纸丢了怎么办 超市柜子纸丢了怎么办 楼下有污水井味道怎么办 孕妇闻到了烧垃圾怎么办 楼下9米垃圾房怎么办 在工厂上班得了职业病怎么办 自来水被农药水污染了怎么办 雾霾天头疼恶心怎么办? 夫妻住宾馆一个没有身份证怎么办 医保报销后认定工伤怎么办