Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 648|回复: 0

[实例教程]Android 模拟器上的GPS

[复制链接]

该用户从未签到

发表于 2011-10-22 14:09:06 | 显示全部楼层 |阅读模式
  我们还是来说说android的模拟器上的GPS,其实我们只要简单的几步就可以实现了,那么我们还等什么,马上来看看是这么样来实现的吧:

       1、首先允许GPS操作权限

       在AndroidManifest.xml 中加入代码:

java代码: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

添加这两个是非常主要的,如果不添加的话,那做的一切都是没有用的。

       2、其中主要应用到的知识点如下所示:

       LocationManager      
       LocationListener        
       Location

       3、主要实现流程

       1)获取LocationManager实例
       2)实现监听器 LocationListener
       3)注册监听器 LocationListener
       4)获取地理位置信息Location

       4、主要接口分析与说明

       1)、android不允许直接对LocationManager进行实例化,必须通过接口getSystemService获取LocationManager实例,如:
             locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);。
       2)、监听器的接口onLocationChanged,主要负责捕获地理位置变化后的地理位置信息。
       3)、接口requestLocationUpdates注册监听器
       4)、接口getLastKnownLocation返回最后一次捕获的地理位置信息数据。

       5、具体实现代码

java代码:
public class gpstest extends Activity {

/** Called when the activity is first created. */

LocationManager locationManager;

TextView textv;

Button btnGetLocation;



@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



textv=(TextView)findViewById(R.id.textview);

btnGetLocation=(Button)findViewById(R.id.btnGetLocation);

btnGetLocation.setOnClickListener(new bntOnClickListen());



//通过getSystemService接口获取LocationManager实例

locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);



//实现监听器 LocationListener

LocationListener locationlisten=new LocationListener() {



public void onStatusChanged(String arg0, int arg1, Bundle arg2) {

// TODO Auto-generated method stub

// Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数

}



public void onProviderEnabled(String arg0) {

// TODO Auto-generated method stub

// Provider被enable时触发此函数,比如GPS被打开

}



public void onProviderDisabled(String arg0) {

// TODO Auto-generated method stub

// Provider被disable时触发此函数,比如GPS被关闭

}



//当坐标改变时触发此函数;如果Provider传进相同的坐标,它就不会被触发

public void onLocationChanged(Location arg0) {

// TODO Auto-generated method stub

if (arg0 != null) {

Log.i("log", "Location changed : Lat: " + arg0.getLatitude() + " Lng: " + arg0.getLongitude());

}

}

};



// 注册监听器 locationListener

//第 2 、 3个参数可以控制接收GPS消息的频度以节省电力。第 2个参数为毫秒, 表示调用 listener的周期,第 3个参数为米 ,表示位置移动指定距离后就调用 listener

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationlisten);



}



class bntOnClickListen implements OnClickListener{



public void onClick(View v) {

// TODO Auto-generated method stub

//获取地理位置信息数据(如果没实现监听器和注册监听器,好像获取不了地理数据)

Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if (location!=null) {

String strLati = Double.toString(location.getLatitude());

String strLong = Double.toString(location.getLongitude());

//显示地理位置数据

textv.setText(strLati + "/" + strLong);

}

else{

Log.i("log", "location==NULL");

}

}



}

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-22 19:36 , Processed in 0.427655 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表