当前位置: 首页 > news >正文

Android GPS GPSBasics project hacking

一、参考源码:

  GPS Basic Example - Android Example

    http://androidexample.com/GPS_Basic__-__Android_Example/index.php?view=article_discription&aid=68&aaid=93

二、Permission:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

三、Example:

package com.example.gpsbasics;

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


public class MainActivity extends Activity implements LocationListener {

    private LocationManager locationManager;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /********** get Gps location service LocationManager object ***********/
        /********** 获取GPS服务管理对象 ************/
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        
        /*
          Parameters :
             First(provider)    :  the name of the provider with which to register 
                                :  注册的名字
             Second(minTime)    :  the minimum time interval for notifications, in milliseconds. This field is only used as a hint to conserve power, and actual time between location updates may be greater or lesser than this value. 
                                :  最小通知时间间隔,以毫秒为单位。此字段仅作为节省电力方式,并且位置更新之间的实际时间可以比该值更大或更小。  
             Third(minDistance) :  the minimum distance interval for notifications, in meters 
                                :  最小间隔通知,以毫秒为单位
             Fourth(listener)   :  a {#link LocationListener} whose onLocationChanged(Location) method will be called for each location update 
                                :  每个位置更新时谁的onLocationChanged (位置)方法将被调用
        */
        
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                3000,   // 3 sec
                10, this);
        
        /********* After registration onLocationChanged method called periodically after each 3 sec ***********/
    }
    
    /************* Called after each 3 sec **********/
    @Override
    public void onLocationChanged(Location location) {
           
        // location.getLatitude(): 纬度
        // location.getLongitude(): 维度
        String str = "Latitude: "+location.getLatitude()+" \nLongitude: "+location.getLongitude();
        Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
        Log.e("GPSBasics", "onLocationChanged.");
    }

    @Override
    public void onProviderDisabled(String provider) {
        
        /******** Called when User off Gps *********/
        
        Toast.makeText(getBaseContext(), "Gps turned off ", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onProviderEnabled(String provider) {
        
        /******** Called when User on Gps  *********/
        
        Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
        
    }
}

 

转载于:https://www.cnblogs.com/zengjfgit/p/4928691.html

相关文章:

  • Touch Handling in Cocos2D 3.x(一)
  • Tab与TabHost转
  • 路由器设置之五种接入方法
  • jConsole,jvisualvm和jmap使用
  • 创建索引
  • 总结概括对于大数据、高并发的网站如何进行优化的问题
  • NAT
  • javascript设计模式实践之代理模式--图片预加载
  • 数据库开发基本操作-Microsoft SQL Server Management Studio Express下载和安装
  • Extract+datapump+replicat 测试
  • Git 菜鸟变大神 (四)Github 创建远程仓库以及关联本地仓库
  • Flash移动开发的一本好书AndroidIOS
  • ::before和::after 常见的用法
  • 跟我一起学习C++虚函数--第二篇
  • MySQL优化order by导致的 using filesort
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【技术性】Search知识
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java程序员幽默爆笑锦集
  • Tornado学习笔记(1)
  • uva 10370 Above Average
  • 初探 Vue 生命周期和钩子函数
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 深度学习入门:10门免费线上课程推荐
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #define,static,const,三种常量的区别
  • ${factoryList }后面有空格不影响
  • (3)(3.5) 遥测无线电区域条例
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (三)c52学习之旅-点亮LED灯
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)shell调试方法
  • (轉貼) UML中文FAQ (OO) (UML)
  • *2 echo、printf、mkdir命令的应用
  • .NET 快速重构概要1
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET的数据绑定
  • .NET开发人员必知的八个网站
  • @Responsebody与@RequestBody
  • @Transient注解
  • [ACTF2020 新生赛]Include
  • [Algorithm][动态规划][路径问题][不同路径][不同路径Ⅱ][珠宝的最高价值]详细讲解
  • [Android]使用Android打包Unity工程
  • [asp.net core]project.json(2)
  • [Avalon] Avalon中的Conditional Formatting.
  • [CSS]浮动
  • [Django 0-1] Core.Checks 模块
  • [IE9] GPU硬件加速到底是实用创新还是噱头