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个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- 数据结构 栈&队列
2-4 依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( ) 删除,移动头指针: 增加,移动尾指针: 删除a,b ,队头c 2-3 在一个链队列中,fron ...
- Linux学习之CentOS(八)----详解文件的搜寻、查找(转)
which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...
- Windows2003无法连接远程桌面问题 解决方法!
按照以下步骤来一一排除问题吧! 步骤1.遇到这样的情况,通常情况下我们都是先检查远程有没有开启,就是右击我的电脑查看属性里的远程前面的框框有没有勾上,勾上后即可远程,metsc 127.0.0.1 ...
- python2.7入门---内置函数
内置函数 abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() ...
- Springboot项目maven多模块拆分
多模块拆分的必要性 使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种 ...
- WPF ViewModel与多个View绑定后如何解决的问题
当重复创建View并绑定同一个ViewModel后,ViewModel中的字段更新,在新的View中的没有反应或者在View中找不到相应的视觉树(如ListBox的ListBoxItem) 初始的解决 ...
- js密码64加密
可以在客户端对密码进行简单的64位加密,服务端对应使用64位解密即可. /** * * Base64 encode / decode * * @author * @date * @email */ f ...
- find函数用法详解
语法:find (string, sub3tring<, modifiers, startpos>),返回substring首次在string中出现的位置,若未找到,则返回0.其中:mod ...
- Spring消息之AMQP.
一.AMQP 概述 AMQP(Advanced Message Queuing Protocol),高级消息队列协议. 简单回忆一下JMS的消息模型,可能会有助于理解AMQP的消息模型.在JMS中,有 ...
- CRM客户关系管理系统(六)
第六章.排序和搜索功能开发 6.1.排序功能开发 (1)kingadmin_tags.py @register.simple_tag def get_sorted_column(column,sor ...