根据GPS获取手机位置

2024-08-31 09:48
文章标签 手机 位置 获取 gps

本文主要是介绍根据GPS获取手机位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据GPS获取手机位置坐标的类
package com.wjy.project.railway.tools;import android.Manifest;
import android.app.Service;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v4.app.ActivityCompat;
import android.util.Log;import com.wjy.project.railway.common.SharePreferUtil;/*** Created by WangJinyong on 2018/3/31.* 根据GPS获取手机位置*/public class GPSService extends Service {// 用到位置服务private LocationManager lm;private MyLocationListener listener;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();Log.e("tag", "====进入GPS==");lm = (LocationManager) getSystemService(LOCATION_SERVICE);// List<String> provider = lm.getAllProviders();// for(String l: provider){// System.out.println(l);// }listener = new MyLocationListener();// 注册监听位置服务// 给位置提供者设置条件Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置参数细化:// criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度// criteria.setAltitudeRequired(false);//不要求海拔信息// criteria.setBearingRequired(false);//不要求方位信息// criteria.setCostAllowed(true);//是否允许付费// criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求String proveder = lm.getBestProvider(criteria, true);if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {// TODO: Consider calling//    ActivityCompat#requestPermissions// here to request the missing permissions, and then overriding//   public void onRequestPermissionsResult(int requestCode, String[] permissions,//                                          int[] grantResults)// to handle the case where the user grants the permission. See the documentation// for ActivityCompat#requestPermissions for more details.return;}lm.requestLocationUpdates(proveder, 0, 0, listener);}@Overridepublic void onDestroy() {super.onDestroy();// 取消监听位置服务lm.removeUpdates(listener);listener = null;}class MyLocationListener implements LocationListener {/*** 当位置改变的时候回调*/@Overridepublic void onLocationChanged(Location location) {String longitude = "j:" + location.getLongitude() + "\n";String latitude = "w:" + location.getLatitude() + "\n";String accuracy = "a" + location.getAccuracy() + "\n";Log.e("tag","longitude="+longitude);Log.e("tag","latitude="+latitude);Log.e("tag","accuracy="+accuracy);SharePreferUtil.putString("longitude",longitude);SharePreferUtil.putString("latitude",latitude);// 发短信给安全号码// 把标准的GPS坐标转换成火星坐标
//   InputStream is;
//   try {
//    is = getAssets().open("axisoffset.dat");
//    ModifyOffset offset = ModifyOffset.getInstance(is);
//    PointDouble double1 = offset.s2c(new PointDouble(location
//      .getLongitude(), location.getLatitude()));
//    longitude ="j:" + offset.X+ "\n";
//    latitude = "w:" +offset.Y+ "\n";
//
//   } catch (IOException e) {
//    // TODO Auto-generated catch block
//    e.printStackTrace();
//   } catch (Exception e) {
//    // TODO Auto-generated catch block
//    e.printStackTrace();
//   }SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();editor.putString("lastlocation", longitude + latitude + accuracy);editor.commit();}/*** 当状态发生改变的时候回调 开启--关闭 ;关闭--开启*/@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}/*** 某一个位置提供者可以使用了*/@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}/*** 某一个位置提供者不可以使用了*/@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}}
}
使用的时候先打开服务
 @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Intent i = new Intent(getActivity(),GPSService.class);getActivity().startService(i);}
使用完成后关闭服务
@Overridepublic void onStop() {super.onStop();Intent i = new Intent(getActivity(),GPSService.class);getActivity().stopService(i);}

这篇关于根据GPS获取手机位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123560

相关文章

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ