Android初级教程获取手机位置信息GPS与动态获取最佳方式
简单介绍一下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发送变化的位置信息,则可以在手机上显示坐标的变化。
对于基于位置的操作,建议在真机上测试。
Android初级教程获取手机位置信息GPS与动态获取最佳方式的更多相关文章
- windowsphone中获取手机位置信息
首先在界面中加入一个textblock控件以显示信息 using System; using System.Collections.Generic; using System.IO; using Sy ...
- Android初级教程调用手机拍照与摄像功能
这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- Android初级教程获取手机系统联系人信息
在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...
- 【转】android 安卓APP获取手机设备信息和手机号码的代码示例
http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...
- android 安卓APP获取手机设备信息和手机号码的代码示例
下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个andro ...
- android利用ContentResolver访问者获取手机联系人信息
转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...
- AppUtils【获取手机的信息和应用版本号、安装apk】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 一个获取设备的系统版本号.设备的型号.应用版本号code值.应用版本号name值.包名.是否更新.安装apk的工具类. 其实这个工具 ...
- Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- JSP 基本语法
1 JSP 的由来 servlet产生后,存在很大的问题,为了表现页面的效果,需要输出大量的HTML 语句,表现为一个个字符串,不仅利于开发,也不利于后期的维护,由此产生了JSP.主要用于将Servl ...
- 面试(二)---synchronized
一.前言 本来计划将ConcurrentHashMap和HashMap对比着来说下,奈何看的源码有点懵逼,我在思考思考,等等有个清晰的思路在搞起来,我们先来谈一下synchronized ...
- Android Activity的任务栈和四大启动模式
在安卓系统中默认每次启动一个Activity时,系统会创建一个实例,并按照先进后出的原则放入任务栈中,当我们按back键时,就会有一个activity从任务栈顶移除,重复下去,直到任务栈为空,系统就会 ...
- 如何理解Spring IOC
Spring IOC 思维导图 要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Pr ...
- Python中模块之re的功能介绍
re模块的功能介绍 1. 方法 match 从开头开始查找 方法:re.match(pattern,string,flags=0) 返回值:<class '_sre.SRE_Match'> ...
- 【linux】---常用命令整理
linux常用命令整理 一.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: l ...
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...
- 31. Next Permutation(中等,搞清楚啥是 next permutation)
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- Go 语言结构
Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello ...
- JavaScript 函数定义
JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function function ...