android6.23 locate定位服务
来源:互联网 发布:如何下载淘宝宝贝主图 编辑:程序博客网 时间:2024/05/16 23:33
- API
- 步骤
- LocationProvider
- Criteria标准
- 追踪用户位置
- Geocoding介绍
- 步骤有bug
API
- LocationManager: 用于管理Android的用户定位服务
- LocationProvider:提供多种定位方式供开发者选择
- 使用GPS定位:权限:android.permission.ACCESS_FINE_LOCATION
- NETWORK定位:使用信号接受塔和wifi接入点进行定位:权限:android.permission.ACCESS_FINE_LOCATION或者android.permission.ACCESS_COARSE_LOCATION(粗糙定位)、
步骤
- 声明相应权限
- 获取locationManager对象
- 选择LocationProvider
- 绑定LocationListener
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TestLocationlistener listener = new TestLocationlistener(); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //getSystemService():获取系统服务返回一个object,向下转型 LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE); //1.定义当前所使用的provider类型,2发出通知的间隔的最小时间,更新位置间隔3两次定位之间的最小距离4监听器 locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 0, 0, listener); } }); } private class TestLocationlistener implements LocationListener { @Override public void onLocationChanged(Location location) { Log.d("location", location.getLongitude() + ""); Log.d("location", location.getAltitude() + ""); }//当位置提供者LocationProvider定位方式状态改变,当不能够获取位置信息或者由不能获取转为 //能获取状态时调用 @Override public void onStatusChanged(String s, int i, Bundle bundle) { } @Override public void onProviderDisabled(String s) { } @Override public void onProviderEnabled(String s) { } }}
LocationProvider
- 显示当前的设备有哪些可以用的provider
- 选择最好的provider
06-24 09:41:12.915 7095-7095/? D/location: gps06-24 09:41:12.915 7095-7095/? D/location: network//查的结果好像是记录的手机到过的位置信息06-24 09:41:12.915 7095-7095/? D/location: local_database
Criteria(标准)
- 创建一个Criteria对象
- 设置Criteria
使用getBestProvider()方法选出最好的provider
setAccuracy(int accuracy)
Indicates the desired accuracy for latitude and longitude.设置精度
setAltitudeRequired(boolean altitudeRequired)
Indicates whether the provider must provide altitude information.
是否需要海拔信息
setBearingAccuracy(int accuracy)
Indicates the desired bearing accuracy.获取方向精度:
getHorizontalAccuracy()
Returns a constant indicating the desired horizontal accuracy (latitude and longitude).
很多建议自己查文档
chooseLocationProvider.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //生成一个Criteria对象 Criteria criteria = new Criteria(); //设置查询条件 criteria.setAccuracy(Criteria.ACCURACY_COARSE); criteria.setPowerRequirement(Criteria.POWER_MEDIUM); criteria.setAltitudeRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(false); //获得最好的provider,如果是true的话仅返回当前已经打开的provider中查找 String provider = locationManager.getBestProvider(criteria, false); if (provider == null) { Log.d("location", "找不到对应的locationProvider"); } else { Log.d("location", provider); } } });
追踪用户位置
//getSystemService():获取系统服务返回一个object, //下转型 LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE);//1.定义当前所使用的provider类型,2发出通知的间隔的最小时 //间,更新位置间隔即最短更新位置时间3两次定位之间的最小 //距离即最短更新距离4监听器 /*主要根据这个方法追踪用户位置 * */ locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 5000, 5000, listener);
Geocoding介绍
根据经纬度查询街道和城市,根据位置查询街道
1. 查询某地址经纬度
2. 查询某经纬度的具体地址
步骤(有bug)
- 创建一个GeoCoder对象
- 调用该对象的getFromLocation()或者是getFromLocationMame()方法;
3.建议采用第一行代码11.3.1节用法
0 0
- android6.23 locate定位服务
- iPhone Locate 定位技术
- iPhone Locate 定位相关
- 使用Locate方法定位记录
- 定位服务
- 程序优化的问题--Locate定位查询
- windows下locate定位脚本加强
- 网站定位(Locate The Web Site)
- Linux使用locate命令定位文件
- Linux 定位和查找 which locate whereis
- 关于Android6.0 百度定位权限问题
- 关于Android6.0 百度定位权限问题
- 定位-01-定位服务编程
- Locate
- locate
- locate
- locate
- locate
- LeetCode 056 Merge Intervals
- Android源码访问者模式---HtmlDocument
- Netty 介绍
- SSM+Maven环境搭建
- 简单Spring容器实现
- android6.23 locate定位服务
- Exec 与 eval 语句
- JavaMail:用Authenticator的子类进行身份验证及策略模式
- 实现淘宝订单(比如订单生成、未支付的订单等等)自定义view的实现
- OC原理分析
- WPF Image控件 Source: Byte[] ,BitmapImage 相互转换
- ACM应该学什么(知乎学长)
- PDO
- jQuery动画