一:新建MyLocationManager.java类,本类是为了代码架构方便把地位经纬度的代码在这类中实现然后通过回调方法,在activity中显示;

import android.content.Context;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

public class MyLocationManager {

private static Context mContext;

private LocationManager gpsLocationManager;

private LocationManager networkLocationManager;

private static final int MINTIME = 2000;

private static final int MININSTANCE = 2;

private static MyLocationManager instance;

private Location lastLocation = null;

private static LocationCallBack mCallback;

public static void init(Context c, LocationCallBack callback) {

mContext = c;

mCallback = callback;

}

private MyLocationManager() {

// Gps 定位

gpsLocationManager = (LocationManager) mContext

.getSystemService(Context.LOCATION_SERVICE);

Location gpsLocation = gpsLocationManager

.getLastKnownLocation(LocationManager.GPS_PROVIDER);

gpsLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

MINTIME, MININSTANCE, locationListener);

// 基站定位

networkLocationManager = (LocationManager) mContext

.getSystemService(Context.LOCATION_SERVICE);

Location networkLocation = gpsLocationManager

.getLastKnownLocation(LocationManager.GPS_PROVIDER);

networkLocationManager.requestLocationUpdates(

LocationManager.NETWORK_PROVIDER, MINTIME, MININSTANCE,

locationListener);

}

//单例模式实例化类

public static MyLocationManager getInstance() {

if (null == instance) {

instance = new MyLocationManager();

}

return instance;

}

private void updateLocation(Location location) {

lastLocation = location;

mCallback.onCurrentLocation(location);

}

private final LocationListener locationListener = new LocationListener() {

public void onStatusChanged(String provider, int status, Bundle extras) {

}

public void onProviderEnabled(String provider) {

}

public void onProviderDisabled(String provider) {

}

public void onLocationChanged(Location location) {

updateLocation(location);

}

};

public Location getMyLocation() {

return lastLocation;

}

private static int ENOUGH_LONG = 1000 * 60;

public interface LocationCallBack {

/**

* 当前位置

*

* @param location

*/

void onCurrentLocation(Location location);

}

//注销注册监听

public void destoryLocationManager() {

gpsLocationManager.removeUpdates(locationListener);

networkLocationManager.removeUpdates(locationListener);

}

}

二:在LocationActivity中实现LocationCallBack接口,如下:

import android.app.Activity;

import android.location.Location;

import android.os.Bundle;

import android.widget.TextView;

import com.android.fzmap.R;

import com.android.location.MyLocationManager.LocationCallBack;

public class LocationActivity extends Activity implements LocationCallBack {

private TextView desText;

private MyLocationManager mLocation;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

desText = (TextView) this.findViewById(R.id.text);

MyLocationManager.init(LocationActivity.this.getApplicationContext(),

LocationActivity.this);//初始化

mLocation = MyLocationManager.getInstance();//获取实例

}

//回调定位信息

public void onCurrentLocation(Location location) {

if (location != null) {

// 显示定位结果

desText.setText("当前经度:" + location.getLongitude() + "\n当前纬度:"

+ location.getLatitude());

}

}

// 关闭程序也关闭定位

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

mLocation.destoryLocationManager();

}

}

三:在AndroidManifest.xml中不要忘了要添加访问网络和启动定位等的几个权限

四:效果如下图:

android 虚拟基站和经纬度,android基于Gps 定位跟基站定位获取经纬度相关推荐

  1. 嵌入式课设-基于GPS模块的校园定位程序

    文章目录 前言 一.环境与设备配置 二.使用步骤 1.使用QT编写相关程序 2.运行 在这里插入图片描述 总结 前言 一个简单的基于GPS模块的校园定位程序的嵌入式课设. 一.环境与设备配置 首先下载 ...

  2. Android开发实战《手机安全卫士》——5.“高级工具”模块实现 获取经纬度 锁屏 卸载

    文章目录 1.手机防盗--接收短信播放音乐 2.手机防盗--定位方式 3.手机防盗--获取经纬度坐标 4.手机防盗--设备管理器使用 5.手机防盗--锁屏 & 数据清除 & 卸载 6. ...

  3. android 虚拟导航监听,Android另类判断NavigationBar虚拟导航栏状态

    好久没码字了,所以出来冒个泡 一直用着华为的手机,从一开始就觉得华为的虚拟导航栏用着还是挺顺手的,后来发现越来越多的机子都开始使用起来,查看源码发现,虚拟导航栏是属于SystemUI的一部分. 再一看 ...

  4. php调用百度接口获取经纬度,利用百度API(js),通过地址获取经纬度的注意事项...

    网上给的很多答案都是这种: http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城 ...

  5. android 虚拟按键挡住布局,Android 虚拟按键遮住了页面内容解决办法

    在启动页的时候华为手机虚拟按键遮挡住了启动页下面的字找了找解决办法,特地记录一下 第一种办法:扩展虚拟按键 //状态栏 @ 顶部getWindow().addFlags(WindowManager.L ...

  6. android虚拟按键趋势,为什么Android虚拟按键老被吐槽但却有厂商坚持在做?

    关于屏内虚拟按键设计的好坏,一直都存在很大的争议.围绕着屏内虚拟按键,支持者与反对者之间进行了长期的争论,至今仍未分出胜负.然而,当多功能前置指纹按键开始普及的时候,屏内虚拟按键似乎正在逐步走向边缘化 ...

  7. android虚拟键盘挡住布局,Android全屏时软键盘遮住输入框修改布局解决方案

    一般 *android:windowSoftInputMode="adjustResize" *就能解决软键盘遮住输入框的问题,但是当Activity设为Full Screen这个 ...

  8. ue4 android 虚拟按钮,ue4 创建Android和ios ar应用

    创建Android 安装安卓sdk 打包时选择 更多详情请查看官方文档 安卓快速入门 创建ios ios打包需要ios证书需要注册苹果开发者账号 支付¥688,另外还需要一台安装xcode11以上版本 ...

  9. android 虚拟按键挡住布局,Android 关于导航栏(虚拟按键)遮挡PopupWindow底部布局的问题...

    我们自定义popupWindow的时候,一般会设置这些参数 setContentView(contentView); //设置高度为屏幕高度 setWidth(UIUtils.getScreenHei ...

  10. unity导致android虚拟键,unity隐藏android机的虚拟按钮

    启动时 将下面有脚本挂载某个物件就行: using UnityEngine; using System.Collections; public class HideAndroidButtons : M ...

最新文章

  1. 洛谷 P1966 火柴排队
  2. C#生成唯一的字符串或者数字
  3. 台安变频器n2按键说明_力扣 925. 长按键入
  4. 2012.7.24---C#(2)
  5. 洞察SaaS:中国SaaS的前世今生
  6. 如何把局域网内不同数据库的两个表的数据进行传输?
  7. linux makefile详解
  8. python 减少可调用对象的参数个数
  9. php 5.3连接mssql2005以上版本的数据库
  10. Switch视频转换器方案
  11. vip地址能ping不通_ping不通地址
  12. Python爬虫之初识简介以及舆情系统简介【爬虫篇一】
  13. Linux - 拨号上网
  14. 【面试通关篇】NLP面经集结 | 达摩院、腾讯、微软、美团、百度
  15. Phpmywind教程:关于广告位调用
  16. 第1章 计算机系统结构的基本概念 思维导图
  17. 年度全球区块链最有影响力人物排行榜TOP10
  18. 2022最新官网VMware下载安装教程(超详细)
  19. 利用kettle进行数据同步
  20. html_css_四分之一圆

热门文章

  1. Linux下SD卡格式化,为SD卡分区
  2. 高琪飞机项目飞机爆炸图片_爆炸式的工作机会和多项目同步
  3. 原生JS实现图片爆炸特效
  4. 公众号两年,粉丝一万,收益五千。
  5. MISC:基本思路 · 常用命令
  6. 梁宁《产品思维》之18用户体验
  7. JAVA-MYSQL-SSH酒店民宿客房管理系统
  8. 拨号连接显示服务器断开连接,弹出拨号连接的解决方法【详细介绍】
  9. 抛弃Eclipse,投入IDEA 的独孤求败江湖
  10. 独孤求败-武功高强深不可测的大侠~~