package ziv.locationdemo;
import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class LocationDemo extends Activity {
TextView locationShow = null; // 显示区
TextView infoTextView = null; // 提示信息显示
Button locationbutton = null; // 绑定GPS监听按钮
Button locationbuttonNetwork=null; // 绑定NEWWOR简体按钮
LocationManager locationManager = null; // 定位管理
public LocationListener locationListener_GPS = null; // 监听gps返回数据
public LocationListener locationListener_NETWORK=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 实例化显示区
locationShow = (TextView) findViewById(R.id.locationShow);
// 在视图层提出提示信息文本框
infoTextView = (TextView) findViewById(R.id.infoTextView);
// 实例化绑定监听按钮
locationbutton = (Button) findViewById(R.id.locationbutton);
locationbuttonNetwork = (Button) findViewById(R.id.locationbuttonNetwork);
// 获得定位管理类
locationManager = (LocationManager) LocationDemo.this
.getSystemService(Context.LOCATION_SERVICE);
// 实例化监听对象变量
locationListener_GPS = new LocationListenerSelf("GPS");
locationListener_NETWORK=new LocationListenerSelf("NETWORK");
locationbuttonNetwork.setOnClickListener(new OnClickListenerButton(LocationManager.NETWORK_PROVIDER));
// 监听单击按钮
locationbutton.setOnClickListener(new OnClickListenerButton(LocationManager.GPS_PROVIDER));
}
// 执行就绪
@Override
protected void onResume() {
// 在就绪执行中,自动选择位置信息提供者,且触发监听
if (locationManager != null) {
// 实例化查询条件
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);// 高精度
// 获得定位服务提供者名称
String provider = locationManager.getBestProvider(criteria, true);
//locationManager.setTestProviderEnabled("gps", true);
//criteria.setCostAllowed(true);
// 自动位置变化监听
if("gps".equals(provider)){
locationManager.requestLocationUpdates(provider, 2000, 0,
locationListener_GPS);
}else{
locationManager.requestLocationUpdates(provider, 2000, 0,
locationListener_NETWORK);
}
// 获得最后的位置信息
Location location = locationManager.getLastKnownLocation(provider);
// 显示坐标信息
if (location != null) {
showLocation(location,provider);
} else {
locationShow.append(" onResume 没获得到定位\n");
infoTextView.setText("提供者:"+provider);
}
}
super.onResume();
}
/**
* 显示location 信息
*
* @param location
*/
private void showLocation(Location location,String provider) {
locationShow.append("经度:" + location.getLongitude() + "\n" + "纬度:"
+ location.getLatitude() + "\n");
infoTextView.setText("提供者:"+provider);
}
@Override
protected void onPause() {
System.out.println("onPause");
if (locationManager != null) {
locationManager.removeUpdates(locationListener_GPS);
locationManager.removeUpdates(locationListener_NETWORK);
}
super.onPause();
}
private class OnClickListenerButton implements OnClickListener{
String provider="";
public OnClickListenerButton(){
super();
}
public OnClickListenerButton(String provider){
super();
this.provider=provider;
}
@Override
public void onClick(View v) {
Location location = locationManager
.getLastKnownLocation(provider);
// 显示坐标信息
if (location != null) {
showLocation(location,provider);
} else {
locationShow.append(" 没获得到定位\n");
infoTextView.setText("提供者:"+provider+";是否可用:"+locationManager.isProviderEnabled(provider));
}
//启动gps监听
if(locationManager.GPS_PROVIDER.equals(provider)){
locationManager.requestLocationUpdates(
provider, 1000, 0,
locationListener_GPS);
}else{
locationManager.requestLocationUpdates(
provider, 1000, 0,
locationListener_NETWORK);
}
}
}
/**
* 位置变化监听
* @author ziv
*
*/
private class LocationListenerSelf implements LocationListener{
String provider="null";
public LocationListenerSelf(){
}
public LocationListenerSelf(String provider){
this.provider=provider;
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
showLocation(location,provider);
} else {
locationShow.append(" location listener 没获得到定位 \n");
infoTextView.setText("提供者:"+provider);
}
}
@Override
public void onProviderDisabled(String provider) {
System.out.println("onProviderDisabled");
}
@Override
public void onProviderEnabled(String provider) {
System.out.println("onProviderEnabled");
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
System.out.println("onStatusChanged");
}
}
}
成功执行 。
分享到:
相关推荐
Android系统内置的对象获取位置信息
android 地理位置信息获取demo
Android利用手机中的GPS模块获取位置坐标
第一:当使用GPS定位时,最好不要使用getLastKnownLocation方法获得当前位置对象Location,因为该对 象可以在onLocationChanged的参数中由系统给予(根据文档,getLastKnownLocation有2方面功能:1. 获取当前地理...
Android 获取经度 纬度 位置信息,在Android系统的手机上运行后,会显示出纬度和经度信息,具体的方法请参见以下代码: //方法:返回查询条件 public Criteria getCriteria(){ Criteria c = new Criteria(); ...
Android 获取位置信息,使用getLatitude();getLongitude();来获取地理位置信息,显示当前的位置信息,如果在手机上运行,可以适时显示纬度和经度,我测试时是在虚拟机上运行,缺少GPS模块,因此没有显示纬度和经度。...
博文链接http://blog.csdn.net/diyangxia/article/details/50995253,仅供参考
Android获取当前的经纬度和地理位置Demo,绝对可以运行,分享给大家。
可以通过GPRS获取位置信息,返回当前所在的位置
只要软件不被彻底关闭 能一直后台获取位置信息 拷贝到项目 添加网络请求即可用
android 获取Gps信息的程序源码
Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值: listValues.add(tm.getDeviceId());//获取设备编号 listValues.add(tm...
自己写的一个获取当前手机位置的Demo,网上的资源比较多,但是难看懂。我参考了两篇博客,写的比较好。 https://www.cnblogs.com/kdkler/p/6196751.html https://www.cnblogs.com/xinaixia/p/8057785.html
解决安卓在无网络链接情况下通过GPS定位获取位置信息。
获取android手机硬件信息,如通讯录,手机版本,系统版本,SDK版本,所有安装包,本机号码,设备ID,IMEI,IMSI,GPS 地理位置定位
Android 11 获取Gps 文件的
Android 根据经纬度获取地址信息 包括:名称 地址 经纬度 电话 邮编等
1、android安卓工程源码 2、触摸屏幕感应位置,获得位置坐标 3、触摸点变色 4、感应屏幕
从google的json接口获取地理位置信息的Java代码 Android开发技巧整理
本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位、移动...