文档章节

android 原生方法获取定位

bengozhong
 bengozhong
发布于 2016/12/30 15:30
字数 275
阅读 125
收藏 0
package com.example.getlocation;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends Activity
{

   private double latitude=0.0;
   private double longitude =0.0;
   LocationManager locationManager =null ;

   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final TextView showText = (TextView)findViewById(R.id.show_text);

      locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
       
      LocationListener locationListener = new LocationListener() {
            
            // Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
               
            }
            
            // Providerenable时触发此函数,比如GPS被打开
            @Override
            public void onProviderEnabled(String provider) {
               Log.e("Map", "onProviderEnabled "  );
            }
            
            // Providerdisable时触发此函数,比如GPS被关闭 
            @Override
            public void onProviderDisabled(String provider) {
               
            }
            
            //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发 
            @Override
            public void onLocationChanged(Location location) {
               if (location != null) 
               {   
                  Log.e("Map", "Location changed : Lat: "  
                  + location.getLatitude() + " Lng: "  
                  + location.getLongitude());   
                  showText.setText("Latitude:"+ location.getLatitude() +"Longitude"+location.getLongitude()); 
                  stopLister(this);
               }
            }
         };
         
         if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
         {
            //第一个参数,与取
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0,locationListener);   
         }
         else
         {
            locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener); 
         }
  
         //取上一次定位的位置
//       Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);   
//       if(location != null){   
//          latitude = location.getLatitude(); //经度   
//          longitude = location.getLongitude(); //纬度
//          
//          Log.e("Map", "NETWORK_PROVIDER changed : Lat: "  
//          + location.getLatitude() + " Lng: "  
//          + location.getLongitude());   
//       }
         
   }

   /**
    * 销毁定位
    */
   private void stopLister(LocationListener listener) {
      if (locationManager != null) {
         locationManager.removeUpdates(listener);
      }
      locationManager = null;
   }
}

© 著作权归作者所有

bengozhong
粉丝 19
博文 476
码字总数 485469
作品 0
深圳
程序员
私信 提问
Android 怎样稳定的获取原生GPS数据

我现在正在开发一款android的移动应用,需要获取GPS数据,现在关键问题是我们无法通过android的原生接口稳定的获取GPS数据或者是基站定位数据,每次获取时有时候获取不到,有时候获取的又根本...

lonuery
2013/05/17
2.3K
2
Android Camera 系统框架分析

一、在android中开发人员可以做那些工作? 应用程序开发:利用android提供的强大的sdk,开发出各种各样新颖的应用。 系统开发:在android中Google实现了与硬件无关的所有代码,但是与硬件密切...

Jerikc
2012/11/05
0
0
Phonegap各类商业插件

【Phonegap商业插件服务】[目前插件已经支持到Phonegap最新版本] 1.phonegap-百度社会化分享-andriod插件 v2.0 【该插件支持微信分享和朋友圈分享,qq好友分享,微博分享】 2.phonegap百度社...

夜澜小雨
2015/07/15
1K
0
Flutter-Android开发者文档 -Intent

此文章为翻译Flutter官网的Flutter for Android Developers - Intent有兴趣的小伙伴可以移步官网查看。 Intent Flutter中的Intent是什么? 在Android中,Intent主要有两大使用方式:Activit...

AllAboutCoding
2018/06/26
0
0
activity和fragment的问题

我一个activity有4个fragment,其中A是主界面,从C B D按返回键退回到桌面,再次进入APP都要求回到A界面,我的做法 是在activity的onResum方法里重新定位一次,,巴特,在原生API中,再次进入...

唐根
2014/11/28
169
1

没有更多内容

加载失败,请刷新页面

加载更多

从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云云栖社区
36分钟前
5
0
比特币第三方API大全

在开发比特币应用时,除了使用自己搭建的节点,也可以利用第三方提供的比特币api,来获取市场行情、进行交易支付、查询账户余额等。这些第三方api不一定遵循标准的比特币rpc接口规范,但往往...

汇智网教程
48分钟前
5
0
Dozer:Dozer异常java.lang.ClassCastException

这个问题是个很难发现的问题,因为代码本身没有错误,但就是无法找到报错原因 现记录下这个报错 java.lang.ClassCastException:com.XXX.ObjectA cannot be cast to com.XXX.ObjectA 代码中并...

琴兽
今天
2
0
Feign Retryer的默认重试策略测试

1、Feign配置 @Configurationpublic class FeignConfig { @Value("${coupon_service.url:http://localhost:8081}") private String couponServiceUrl; @Bean publ......

moon888
今天
2
0
关于不同域名下的session共享问题

如果登录,首页,分类,列表,产品都在不同的二级域名下,主域名不变,一定要保证里面的版本问题,不能为了更新而更新,这样哪个下面的session都访问不了。

dragon_tech
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部