关于Android中使用定位的解决方案。
来源:互联网 发布:淘宝是什么时候成立的 编辑:程序博客网 时间:2024/05/21 14:07
笔者最近几天在正在写一个Android下定位的程序,最开始用网上的常规方法,使用Google的API定位发现很不好用,而且经常定不出来。
后来使用百度的定位API很方便 而且定位速度快,比较精准。 感叹啊,百度终于有地方超过Google了。。。
这里是百度定位API的下载地址:点击打开链接
下面来说下使用方法:
1.在AndroidManifest.xml中添加如下权限:
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></permission><uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
以及添加Service
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" android:permission="android.permission.BAIDU_LOCATION_SERVICE"> <intent-filter> <action android:name="com.baidu.location.service_v2.4"></action> </intent-filter></service>
2.新建一个内部类MyLinstener
public class MyLinstener implements BDLocationListener{@Overridepublic void onReceiveLocation(BDLocation arg0) {// TODO Auto-generated method stubLog.i("纬度", arg0.getLatitude()+"");Log.i("经度", arg0.getLongitude()+"");Log.i("精度半径", arg0.getRadius()+"");if(arg0.getLocType()==BDLocation.TypeGpsLocation){ //卫星定位的结果Log.i("速度", arg0.getSpeed()+"");Log.i("卫星代号", arg0.getSatelliteNumber()+"");}if (arg0.getLocType()==BDLocation.TypeNetWorkLocation) { //网络定位的结果Log.i("地址", arg0.getAddrStr()+"");}}@Overridepublic void onReceivePoi(BDLocation arg0) {// TODO Auto-generated method stub} }
3.定义变量并初始化
public LocationClient mLocationClient=null;public BDLocationListener mListener=new MyLinstener();初始化
mLocationClient=new LocationClient(this); mLocationClient.registerLocationListener(mListener); LocationClientOption option=new LocationClientOption(); option.setOpenGps(true);//启动Gps,注:手机上的GPs开关必须由用户自己打开。 option.disableCache(true);//设置是否不缓存结果 option.setCoorType("gcj02"); //设置坐标系类型。 mLocationClient.setLocOption(option);
4.启动定位
mLocationClient.start(); mLocationClient.requestLocation();
总结:我这个例子只是基本的功能,还有一些比如,设置自动刷新时间的功能,请大家自己看官方文档吧,就在上面的官方下载地址页面的。
这里提供例子的源码下载:点击打开链接
- 关于Android中使用定位的解决方案。
- 关于IE6中absolute定位错误的原因及解决方案
- 关于css中定位的使用
- android中ListView的定位:使用setSelectionFromTop
- android中ListView的定位:使用setSelectionFromTop
- android中ListView的定位:使用setSelectionFromTop
- 关于Android中Google定位
- 关于Android 中webView 中定位失败的原因
- 关于LF定位问题的解决方案
- android中关于gps定位的实现方式
- 关于iOS8中使用CoreLocation定位的小变化
- jsp中关于锚点的使用(定位)
- Android关于ListView中使用EditText获取输入数据和刷新ListView数据的解决方案
- 关于Android 定位的介绍
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- 《汉语拼音方案》缺陷与修正
- tiff文件读取
- C# 扩展方法实际应用整理
- UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath
- java中static作用详解
- 关于Android中使用定位的解决方案。
- 在没有仿真器的情况下调试ok6410裸机程序
- 学习OPENCV第6章的例程和部分练习
- for xml path('')
- oracle常用经典sql查询
- java程序题:将一个正整数分解质因数
- mysql 强制索引
- Java中通过代理连接至指定的URL
- 控制台输出乱码的解决方法