`
antkingwei
  • 浏览: 41898 次
  • 性别: Icon_minigender_1
  • 来自: 日照
社区版块
存档分类
最新评论

GPS定位那点事

阅读更多


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.antking.gps"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".GPSActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

 实现

package com.android.antking.gps;

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.widget.TextView;
import android.widget.Toast;

public class GPSActivity extends Activity {
    //声明位置管理对象
	 private LocationManager locationManager;
	 //声明位置监听对象
	 private LocationListener locationListener;
	 //声明字符串变量
	 String locationprovider;
	 //声明显示文本视图组建
	 private TextView textview;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //获得文本视图
        textview = (TextView)this.findViewById(R.id.textView1);
        try{
        	//新建Criteria类
        	Criteria locationcriteria = new Criteria();
        	//设置精确精度
        	locationcriteria.setAccuracy(Criteria.ACCURACY_FINE);
        	//不提供海拔高度信息
        	locationcriteria.setAltitudeRequired(false);
        	//不提供方向信息
        	locationcriteria.setBearingRequired(false);
        	//允许运营商计费
        	locationcriteria.setCostAllowed(true);
        	//设置电池消耗为低耗费
        	locationcriteria.setPowerRequirement(Criteria.POWER_LOW);
        	//使用getSystemService()方法获得位置管理器对象
        	locationManager
        	=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
        	//locationManager.setTestProviderEnabled("gps", true);
        	Toast.makeText(GPSActivity.this, "getSystemService", Toast.LENGTH_SHORT).show();
        	//检查gps功能开启
        	if(checkgps()){
        		locationprovider 
        		=locationManager.getBestProvider(locationcriteria, true);
        		Log.d("provider", locationprovider);
        		//注册位置监听器
        		locationListener = new MyLocationListener();
        		locationManager.requestLocationUpdates(locationprovider, 1000, 0,locationListener);
        	}
        }catch(Exception e){
        	Toast.makeText(GPSActivity.this, "异常错误"+e.toString(),Toast.LENGTH_LONG).show();
        }
       
    }
    private class MyLocationListener implements LocationListener{
         /**
          * 若位置发生变化,onLocationChanged方法被调用
          */
		@Override
		public void onLocationChanged(Location location) {
			// TODO Auto-generated method stub
			Log.i("位置发生变化", "Invoke");
			if(location != null){
				//获得经度
				String latitude = Double.toString(location.getLatitude());//经度
				
				//获得纬度
			
			   String longitude = Double.toString(location.getLongitude());//纬度
				//在文本框中显示
			   textview = (TextView)GPSActivity.this.findViewById(R.id.textView1);
				textview.setText("经度:"+longitude+"纬度"+latitude);
			}
			//locationManager.removeUpdates(this);
			//locationManager.setTestProviderEnabled("gps", true);
		}
         //若屏蔽提供商,该方法被调用
		
		@Override
		public void onProviderDisabled(String provider) {
			// TODO Auto-generated method stub
			Log.i("屏蔽提供商", "Invode");
		}
        //若激活提供商,该方法被调用
		@Override
		public void onProviderEnabled(String provider) {
			// TODO Auto-generated method stub
			Log.i("激活提供商", "Invode");
		}
       //若状态发生变化,该方法被调用
		@Override
		public void onStatusChanged(String provider, int status, Bundle extras) {
			// TODO Auto-generated method stub
			Log.i("状态发生变化", "Invode");
		}
    	
    }
    private boolean checkgps(){
    	boolean providerEnabled
    	 = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    	//若被激活,则返回真值
    	if(providerEnabled ==true){
    		Toast.makeText(this, "Gps模块活动正常", Toast.LENGTH_SHORT).show();
    		return true;
    	}
    	else{
    		Toast.makeText(this, "请开启GPS", Toast.LENGTH_SHORT);
    		return false;
    	}
    	
    }
   
}
  • 大小: 10.2 KB
分享到:
评论

相关推荐

    gps定位_matlab定位_gps定位_定位_GPS_GPS定位_

    在MATLAB环境中实现GPS定位,主要是利用信号处理和数学建模的方法,通过解析GPS接收机接收到的卫星信号来确定地面点的位置。本套MATLAB算法主要涵盖了以下几个关键知识点: 1. **GPS系统基本原理**:GPS(Global ...

    GPS单点定位.rar_GPS单点定位程序_gps定位_matlab 单点定位_单点定位_单点定位matlab

    GPS单点定位是一种基于全球定位系统(GPS)的定位技术,它通过接收至少一颗GPS卫星发射的信号来计算用户位置。在本程序集中,我们关注的是...对于GPS定位感兴趣的科研人员、学生或工程师来说,这是一个很好的学习资源。

    Android GPS定位简单 DEMO

    -- GPS定位必须的权限 --&gt; **1.获取位置管理器对象LocationManager** ``` import android.location.LocationManager; LocationManager lm; // lm =(LocationManager) this.getSystemService(Context`....

    基于PHP的GPS定位

    在PHP GPS定位系统中,我们可以通过API获取地图视图,设置地图中心点,调整缩放级别,以及在地图上显示GPS坐标对应的标记。API还提供了地理编码服务,可以将地址转换为经纬度坐标,反之亦然。此外,API还支持路线...

    GPS定位数据的提取

    GPS 定位数据的提取 GPS 定位数据的提取是指从 GPS 设备中获取定位信息的过程。在这里,我们使用 C++ 语言来编程开发 GPS 定位数据的提取系统,该系统可以进一步进行后续处理。 在 GPS 定位数据的提取系统中,我们...

    移动手机GPS定位

    移动手机GPS定位是一种基于全球定位系统(GPS)技术,通过集成在智能手机中的GPS接收器,配合网络服务,实现对手机用户位置的实时追踪和定位。在本案例中,使用了Adobe Flex这一跨平台的开发框架来构建这个功能。 ...

    GPS.zip_GPS 定位_gps定位_单点定位_定位误差_精密单点定位

    在"GPS.zip"压缩包中,包含的是关于GPS定位的相关程序和可能的数据,特别是针对“精密单点定位”这一高级定位方法。 精密单点定位(PPP,Precise Point Positioning)是一种高级的GPS定位技术,它能够提供非常精确...

    Android GPS 定位的实现

    下面是 Android GPS 定位的实现知识点: 一、添加权限 要使用 Android 平台的 GPS 设备,首先需要添加上权限,否则程序将无法访问 GPS 设备。添加权限的方法是在 AndroidManifest.xml 文件中添加以下代码:...

    百度GPS定位实现

    在IT行业中,GPS定位技术是移动应用开发中的关键部分,特别是在地理位置服务方面。本文将深入探讨如何使用百度的GPS定位服务来实现地图定位、显示跟踪和追踪功能。 首先,让我们了解百度GPS定位的基础。百度地图API...

    GPS单点定位程序

    4. 实时性考虑:GPS定位需要快速处理大量数据,因此程序需要高效且实时性强。 5. 验证与测试:通过模拟数据或实地测试,验证程序的准确性及稳定性。 总结,GPS单点定位程序涉及了信号处理、数学建模、误差修正等多...

    Android获取GPS定位示例程序

    在Android平台上,获取GPS定位是移动应用开发中的基础功能,尤其对于那些依赖地理位置信息的应用,如导航、社交、天气预报等。本示例程序"LocationDemo"是专门为开发者设计的,用于展示如何在Android Studio环境下...

    GPS.zip_GPS_GPS 定位_GPS 定位程序_gps定位_gps定位matlab

    在本程序中,"m模拟GPS定位"是核心文件,可能包含了以下关键知识点: 1. **信号仿真**:模拟卫星信号的传播,包括信号的发射、在大气中的衰减、多路径效应等,这些都是实际定位中可能遇到的情况。 2. **多普勒效应...

    GPS定位—地图c#实现源码

    本文将详细解析使用C#语言实现GPS定位及地图功能的知识点。 首先,C#是一种广泛用于开发Windows桌面应用、Web应用以及Windows Phone等移动应用的面向对象的编程语言。在C#中实现GPS定位主要涉及到.NET Framework或...

    GPS定位算法研究

    GPS定位算法的研究主要涉及到全球定位系统(GPS)的通信标准,特别是NMEA-0183标准。NMEA,全称美国国家海洋电子协会,为了统一GPS导航设备间的RTCM(海事无线电技术委员会)标准,制定了三个版本的通信协议,分别是...

    GPS定位基本原理

    "GPS定位基本原理" GPS 定位系统是基于卫星导航技术的,通过一组卫星系统来提供位置信息。GPS 系统主要由三部分组成:GPS 卫星系统、GPS 接收器和GPS 地面控制系统。GPS 卫星系统是由24颗卫星组成的,分布在六个...

    GPS定位代码IOS

    在iOS开发中,GPS定位是移动应用中常见且重要的功能,尤其对于地图导航、运动健身、旅行类应用不可或缺。本文将深入探讨如何在iOS平台上实现GPS定位,展示一个基础的GPS定位代码示例,并解释其工作原理。 首先,...

    GPS定位得到经纬度

    标题“GPS定位得到经纬度”涉及的是全球定位系统(Global Positioning System,GPS)在获取地理位置信息中的应用,特别是如何通过GPS技术获取到地球表面某一点的经度和纬度坐标。这一过程对于各种需要定位服务的应用...

    基于单片机的GPS定位信息显示系统设计PPT课件.pptx

    本文主要介绍了基于单片机的GPS定位信息显示系统设计的相关知识点,涵盖了GPS全球定位系统、GPS信号接收方案选择、GPS接收模块的研究、基于单片机的GPS硬件电路设计和基于单片机的GPS软件设计等方面的内容,为学习和...

    GPS定位基本原理[归纳].pdf

    GPS 定位基本原理 GPS 定位是现代移动应用中最重要的一种技术,它将成为所有移动设备的标准配置。GPS 定位的基本原理是通过四颗已知位置的卫星来确定 GPS 接收器的位置。本文将从编程人员的角度出发,介绍 GPS 定位...

Global site tag (gtag.js) - Google Analytics