Android初级教程获取手机位置信息GPS与动态获取最佳方式
来源:互联网 发布:4g网络摄像机 编辑:程序博客网 时间:2024/05/22 13:17
简单介绍一下gps定位的操作。
主要是靠locationmanger这个api完成的一些操作;通过获取这个实例,然后调用它的requestLocationUpdates方法进行注册。传入的参数分别有以下含义:
* 1、provider:哪种定位方式
* 2、minTime:定位的时间差
* 3、minDistance:定位距离差
* 4、定位监听回调
然后第四个参数是一个监听器,要回调这个方法,监听位置的变化情况。实时更新所在位置
程序代码如下:
package com.example.gps;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity { private TextView tv_show_location;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_show_location = (TextView) findViewById(R.id.tv_show_location); //获取定位管理器 LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); //设置定位信息 //坐标位置改变,回调此监听方法 LocationListener listener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } //位置改变的时候调用,这个方法用于返回一些位置信息 @Override public void onLocationChanged(Location location) { //获取位置变化结果 float accuracy = location.getAccuracy();//精确度,以密为单位 double altitude = location.getAltitude();//获取海拔高度 double longitude = location.getLongitude();//经度 double latitude = location.getLatitude();//纬度 float speed = location.getSpeed();//速度 //显示位置信息 tv_show_location.append("accuracy:"+accuracy+"\n"); tv_show_location.append("altitude:"+altitude+"\n"); tv_show_location.append("longitude:"+longitude+"\n"); tv_show_location.append("latitude:"+latitude+"\n"); tv_show_location.append("speed:"+speed+"\n"); } }; locationManager.requestLocationUpdates("gps", 0, 0, listener);//Register for location updates }}
而如果想自动获取最佳定位方式的话,加入以下代码即可:
//动态获取所有的定位方式 List<String> allProviders = locationManager.getAllProviders(); for (String string : allProviders) {System.out.println("所有定位方式:>>>"+string);} Criteria criteria = new Criteria(); criteria.setCostAllowed(true);//设置产生费用,收费的一般比较精确 criteria.setAccuracy(Criteria.ACCURACY_FINE);//精确度设为最佳 //动态获取最佳定位方式 String bestProvider = locationManager.getBestProvider(criteria, true); /** * 1、provider:那种定位方式 * 2、minTime:定位的时间差 * 3、minDistance:定位距离差 * 4、定位监听回调 * */ //Register for location updates locationManager.requestLocationUpdates(bestProvider, 0, 0, listener);用模拟器的话。需要配置三个权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
第二个专门针对模拟器的权限,真机则不需要。
运行程序,用DDMS的Maual下的Decimal发送变化的位置信息,则可以在手机上显示坐标的变化。
对于基于位置的操作,建议在真机上测试。
0 0
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
- Android GPS应用:动态获取位置信息
- Android初级教程获取手机系统联系人信息
- Android模拟器利用GPS获取手机位置
- android 获取手机位置信息
- Android手机开发:获取GPS信息
- android GPS 获取位置
- android GPS 位置获取
- 通过GPS获取位置信息
- Android 获取手机GPS
- Android 打开 GPS 导航并获取位置信息
- Android 打开 GPS 导航并获取位置信息
- Android获取位置信息 - GPS定位 Network定位
- android使用GPS获取位置
- GPS 定位获取 手机当前的位置
- android动态获取gps信息后本地文件保存问题总结
- Android学习--位置信息经纬度获取+动态获取权限
- android GPS 获取城市信息
- 哈夫曼树与哈夫曼编码
- Spring 注释 @Autowired 和@Resource 的区别
- SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems
- 数据类型变换uint8_t uint16_t等等
- maven:多模块开发
- Android初级教程获取手机位置信息GPS与动态获取最佳方式
- 航天金税金税盘批量导入项目开发
- WWW、HTTP、CGI
- Java 反射机制的理解
- Spring常用注解
- 特征处理(Feature Processing)
- IT门户
- 1、@Transient @[email protected]�射,ORM框架将忽略该属性; 如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@B
- 动态规划之线性动归