Android中获取定位经纬度信息
程序员文章站
2024-01-03 10:03:22
场景 根据GPS获取经纬度效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 修改页面布局代码activity_main.xml,在页面上添加一个TextView来显示经纬度 ......
场景
根据gps获取经纬度效果
注:
博客:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
修改页面布局代码activity_main.xml,在页面上添加一个textview来显示经纬度信息。
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity"> <textview android:id="@+id/location" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:textstyle="bold" /> </relativelayout>
然后打开mainactivity.java,修改代码如下
package com.badao.servicetest; import androidx.appcompat.app.appcompatactivity; import androidx.core.app.activitycompat; import android.manifest; import android.content.pm.packagemanager; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.bundle; import android.view.windowmanager; import android.widget.textview; public class mainactivity extends appcompatactivity { private textview text; //定义用于显示locationprovider的textview组件 @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen); //设置全屏显示 text = (textview) findviewbyid(r.id.location); //获取显示location信息的textview组件 //获取系统的locationmanager对象 locationmanager locationmanager = (locationmanager) getsystemservice(location_service); //添加权限检查 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; } //设置每一秒获取一次location信息 locationmanager.requestlocationupdates( locationmanager.gps_provider, //gps定位提供者 1000, //更新数据时间为1秒 1, //位置间隔为1米 //位置监听器 new locationlistener() { //gps定位信息发生改变时触发,用于更新位置信息 @override public void onlocationchanged(location location) { //gps信息发生改变时,更新位置 locationupdates(location); } @override //位置状态发生改变时触发 public void onstatuschanged(string provider, int status, bundle extras) { } @override //定位提供者启动时触发 public void onproviderenabled(string provider) { } @override //定位提供者关闭时触发 public void onproviderdisabled(string provider) { } }); //从gps获取最新的定位信息 location location = locationmanager.getlastknownlocation(locationmanager.gps_provider); locationupdates(location); //将最新的定位信息传递给创建的locationupdates()方法中 } public void locationupdates(location location) { //获取指定的查询信息 //如果location不为空时 if (location != null) { stringbuilder stringbuilder = new stringbuilder(); //使用stringbuilder保存数据 //获取经度、纬度、等属性值 stringbuilder.append("您的位置信息:\n"); stringbuilder.append("经度:"); stringbuilder.append(location.getlongitude()); stringbuilder.append("\n纬度:"); stringbuilder.append(location.getlatitude()); // stringbuilder.append("\n精确度:"); // stringbuilder.append(location.getaccuracy()); // stringbuilder.append("\n高度:"); // stringbuilder.append(location.getaltitude()); // stringbuilder.append("\n方向:"); // stringbuilder.append(location.getbearing()); // stringbuilder.append("\n速度:"); // stringbuilder.append(location.getspeed()); // stringbuilder.append("\n时间:"); // simpledateformat dateformat = new simpledateformat("yyyy-mm-dd hh mm ss"); //设置日期时间格式 // stringbuilder.append(dateformat.format(new date(location.gettime()))); text.settext(stringbuilder); //显示获取的信息 } else { //否则输出空信息 text.settext("没有获取到gps信息"); } } }
最后打开androidmainfest.xml添加权限
<uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_fine_location"/>
添加位置如下
推荐阅读
-
jsp的修改页面中怎么样获取到复选框和下拉列表里面的信息然后显示在修改页面
-
在C#中根据HardwareID获取驱动程序信息的实现代码
-
验证码-php中如何用curl模拟http头信息进行模拟登陆并获取信息
-
获取SQL Server数据库中的聚簇索引信息
-
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动_PHP
-
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
-
android通过google api获取天气信息示例
-
HTML5获取地理位置定位信息_html/css_WEB-ITnose
-
Android获取定位权限,获取设备所在的经纬度
-
Android中获取资源 id 及资源 id 的动态获取