根据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

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2