`
张洪财
  • 浏览: 275939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获得位置信息 android

阅读更多

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使用GPS获取当前地理位置

    下面是一个简单的示例,展示如何在Android应用中使用GPS获取位置信息: ```java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout....

    获取基站信息android

    LocationManager 是 Android 中的一个系统服务,提供了对位置信息的访问。获取 GPS 信息的步骤如下: 1. 在 Activity 或 Service 中通过 android.content.Context 父类的方法获取 LocationManager 对象:`mLocMgr =...

    Android获取位置信息

    在Android系统中,获取位置信息是一项关键功能,它允许应用为用户提供基于位置的服务,如导航、天气预报等。Android提供了多种API和类来获取位置数据,主要通过Android Location API和Google Play服务的Fused ...

    android 地理位置信息获取demo

    在Android平台上,获取地理位置信息是移动应用开发中的关键功能,尤其对于导航、地图服务或位置相关的社交应用来说。本教程将深入探讨如何在Android中实现地理位置信息的获取,以"android 地理位置信息获取demo"为例...

    Android获取位置坐标

    首先,要获取位置信息,我们需要在AndroidManifest.xml文件中添加权限声明。对于GPS定位,我们需要申请ACCESS_FINE_LOCATION权限: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_...

    Android中通过Exifinterface读取图片地理位置信息

    下面将详细解释如何使用ExifInterface来读取图片的地理位置信息。 首先,了解什么是EXIF信息。EXIF是一种图像文件格式,用于存储与数字照片有关的各种信息,包括拍摄时间、相机型号、曝光设置、焦距、ISO感光度以及...

    Android加载高德地图 获取当前位置及各点位置

    android加载高德地图,定位当前位置,根据点击不同点获取不同地理位置名称 android加载高德地图,定位当前位置,根据点击不同点获取不同地理位置名称 android加载高德地图,定位当前位置,根据点击不同点获取不同...

    Android 获取当前位置,地区名称完整实

    在Android 6.0(API级别23)及以上版本,获取位置信息需要在运行时请求权限。你需要在`AndroidManifest.xml`中声明`ACCESS_FINE_LOCATION`或`ACCESS_COARSE_LOCATION`权限,并在代码中判断并请求权限。 2. **定位...

    android地理位置信息修改

    Android系统通过GPS硬件或者网络提供商(如Wi-Fi和移动数据)来获取位置信息。开发者可以使用LocationManager服务和LocationProvider接口来获取这些信息。LocationManager是一个系统服务,负责与不同的位置提供者...

    Android GPRS获取位置信息DEMO

    在Android开发中,获取位置信息是一项常见的功能,尤其在移动应用中,用户可能需要知道自己的实时位置以便导航、查找附近的兴趣点或者进行其他基于位置的服务。本DEMO "Android GPRS获取位置信息" 展示了如何利用...

    android获取手机位置

    当手机内置了GPS接收模块,即使在信号不佳的区域,仍能获取到位置信息。然而,GPS定位的缺点是功耗大,且需要清晰的视线接触至少四颗卫星,因此在室内或高楼林立的地方可能无法正常工作。 2. 网络定位: 网络定位...

    Android 获取当前的经纬度和地理位置

    接着,初始化FusedLocationProviderClient,它是Google Play服务中的一个接口,用于获取位置信息: ```java FusedLocationProviderClient fusedLocationProviderClient = LocationServices....

    Android LocationManager 获取经纬度和卫星信息

    在Android开发中,LocationManager是系统提供的一种用于获取设备地理位置信息的重要API。它允许开发者访问GPS(全球定位系统)、网络定位服务以及其他可用的位置提供者,从而获取到经纬度坐标和其他位置相关数据。...

    android 模拟位置信息Location使用示例

    在Android开发中,模拟位置信息是一项重要的功能,特别是在测试或者开发与地理位置相关的应用时。`Location`类是Android系统提供的一种用于表示地理位置信息的核心类,它包含了经度、纬度、速度、海拔、时间和精度等...

    Android获取位置信息的两种方式

    在Android系统中,获取位置信息是移动应用开发中的常见需求,尤其在户外导航、地图服务等领域至关重要。本文将深入探讨两种主要的获取位置信息的方法:GPS(全球定位系统)和网络定位,着重解决在无网络连接时如何...

    Android-获取取手机敏感信息Android6.0之上兼容

    3. **获取位置信息** - 检查并请求`ACCESS_FINE_LOCATION`权限。 - 创建`LocationManager`实例,注册监听器获取GPS或网络位置更新。 - 使用`LocationManager.getLastKnownLocation()`获取最近的已知位置。 4. **...

    Android获取cpu,内存,磁盘使用率信息

    获取系统级信息,如CPU和内存使用率,通常需要`android.permission.SYSTEM_ALERT_WINDOW`(显示系统级窗口)或`android.permission.ACCESS_FINE_LOCATION`(访问位置信息)等权限,而这些权限属于危险权限,需要用户...

    Android 定时获取位置

    结合WorkManager或JobScheduler,可以在后台定期获取位置信息。 ```java // 初始化FusedLocationProviderClient FusedLocationProviderClient fusedLocationClient = LocationServices....

    Android-Android仿微信发送位置

    Android系统提供了Location API,通过GPS、网络等多种途径获取设备的地理位置信息。我们可以使用`FusedLocationProviderClient`类(属于`com.google.android.gms.location`包)来获取实时位置。首先,需要在...

    Android 获取经度 纬度 位置信息.rar

    Android 获取经度 纬度 位置信息,在Android系统的手机上运行后,会显示出纬度和经度信息,具体的方法请参见以下代码:  //方法:返回查询条件  public Criteria getCriteria(){   Criteria c = new Criteria(); ...

Global site tag (gtag.js) - Google Analytics