位置定位(LocationManager)
目录
LocationManager
LocationManager是Android 提供的Location 服务,来获得当前的位置信息和卫星信息。
要使用它,先得获得系统所提供的location_service.
LocationManager lm;lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
定位服务的提供一般有3种:
- GPS_PROVIDER GPS获得
- NETWORK_PROVIDER 网络获得
- PASSIVE_PROVIDER 被动提供其他应用程序提供
通过api获取现有支持的定位服务模式:
lm.getAllProviders();
代码实战
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"><ListViewandroid:id="@+id/pro"android:layout_width="368dp"android:layout_height="495dp"tools:layout_editor_absoluteX="20dp"tools:layout_editor_absoluteY="20dp" />
</android.support.constraint.ConstraintLayout>
代码文件:
package com.example.user.location;import android.content.Context;
import android.location.LocationManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;import java.util.List;public class MainActivity extends AppCompatActivity {ListView providers;LocationManager lm;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);providers = (ListView)findViewById(R.id.pro);lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);List<String> provideNames = lm.getAllProviders();ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,provideNames);providers.setAdapter(adapter);}
}
获取定位
使用requestLocationUpdates
注册监听,定时获取定位hal service返回的数据
整体项目如下:
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.user.gps"><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
active_main.xml
package com.example.user.gps;import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;import org.junit.Test;
import org.junit.runner.RunWith;import static org.junit.Assert.*;/*** Instrumented test, which will execute on an Android device.** @see <a href="http://d.android.com/tools/testing">Testing documentation</a>*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {@Testpublic void useAppContext() {// Context of the app under test.Context appContext = InstrumentationRegistry.getTargetContext();assertEquals("com.example.user.gps", appContext.getPackageName());}
}
代码:
package com.example.user.gps;import android.annotation.SuppressLint;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;import org.json.JSONObject;import java.util.List;public class MainActivity extends AppCompatActivity {private TextView positionTextView;private TextView positionLatLng;private LocationManager locationManager;private String provider;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);positionTextView=(TextView)findViewById(R.id.position_text_view);positionLatLng=(TextView)findViewById(R.id.position_plain_text);locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);//获取所有可用的位置提供器provider=LocationManager.GPS_PROVIDER;Location location=locationManager.getLastKnownLocation(provider);if(location!=null){//显示当前设备的位置信息Log.d("lidu---", "location!=null");showLocation(location);}Log.d("lidu---", "location==null");locationManager.requestLocationUpdates(provider, 1000, 1, locationListener);}//LocationListener 用于当位置信息变化时由 locationManager 调用LocationListener locationListener=new LocationListener(){@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stubLog.d("test", "onLocationChanged");//更新当前设备的位置信息showLocation(location);}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}};private void showLocation(final Location location){StringBuilder sb = new StringBuilder();sb.append(location.getLatitude());positionTextView.setText(sb.toString());}}
http://www.taodudu.cc/news/show-2794852.html
相关文章:
- 前端导出Excel表格
- 上传并下载excel表格
- 前端如何下载excel表格
- MySQL导入Excel表格
- antd vue 将表格导出为Excel
- html粘贴excel表格,如何将网页中的表格快速复制到EXCEL中|
- 计算机表格大小怎么调整,excel怎么调整表格大小
- MATLAB生成excel表格
- 音频编码原理
- 计算机音频接口,一台计算机的两个音频输出
- 音频降噪 java_流音频中的降噪和压缩
- ios视频直播没有音频问题
- 如何实现在直播中播放音频文件
- Android音频焦点及混音策略
- 简单的音频播放功能MediaPlayer使用中所遇到的坑。
- android直播音频开发准备
- TaoAudio: 淘宝直播短视频音频解决方案
- 音频技术及行业的发展
- 搬砖: web音频流转发之音视频直播
- RTMP直播到FMS中的AAC音频直播
- php语音直播怎么做,语音直播功能实现流程
- 音频技术总结
- H5 PCM转WAV实时音频直播代码实现细节
- 电视台音频直播的问题
- 视频直播,音频直播,m3u8
- 音频直播优化方法
- 搭建内网音频直播源基于天津相声广播音频
- 树莓派使用nginx+rtmp搭建音频直播流媒体服务器
- 音频直播、广播研究
- 树莓派 音频本地的录制与播放、远程音频直播
位置定位(LocationManager)相关推荐
- 位置定位LocationManager
简单的获取当前位置对象 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanc ...
- android打开位置服务,Android - 位置定位(Location)服务(Service)类的基本操作
位置定位(Location)服务(Service)类的基本操作 本文地址: http://blog.csdn.net/caroline_wendy 定位服务(Location Service),能够确 ...
- java 位置定位_地图实时定位我的位置
首先需要显示地图,请看我的另一篇文章 然后实时获取定位信息中的经度和纬度, 然后启动定位功能标记我的位置 开启定位图层 setMyLocationEnabled(true) 构造定位数据 MyLoca ...
- android 设置定位,Android定位--LocationManager的用法
用户定位 LocationManager的作用: 1.获取用户的位置 2.追踪用户的移动 LocationManager的关键API 1.LocationManager:用于管理Android的用户定 ...
- 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
appium相对位置定位元素----父节点/兄弟节点定位 发布时间:2020-06-30 05:51:41 来源:51CTO 阅读:5620 作者:niedongri 讲一下定位手机app上元素时定位 ...
- Android百度地图之位置定位和附近查找代码简单实现 (上)
很长时间没有做Android相关知识了,闲暇之余再弄了弄最新的百度地图API,主要是进行百度地图附近餐馆查找功能来练练手,同时熟悉下最新的API教程.文章比较基础,也希望对你有所帮助~参考前文: ...
- 关闭微信小程序电脑端的位置定位
关闭微信小程序电脑端的位置定位 关闭微信小程序电脑端的位置定位 1.使用fiddler获取微信小程序获取定位的网址 2.在host文件中将其禁止 3.删除微信小程序的缓存 3.再启动微信小程序即可 关 ...
- 使用 Mac 位置定位服务的应用的操作方法
给大家分享一下管理可以使用 Mac 位置定位服务的应用的操作方法,希望对您有所帮助哦~ 允许应用和网站基于您 Mac 的当前位置收集和使用信息.您的大致位置是使用本地 Wi-Fi 网络的信息来确定的, ...
- 百度地图查找我的位置定位服务器,百度地图手机版如何进行我的位置定位?
不知大家有没有使用过百度地图手机版我的位置定位功能?百度地图的位置定位功能很不错,我的位置定位让我们随时分享位置信息,可以通过这个位置定位功能让其他的好友都知道我们的具体所在位置,真是一个很实用的功能 ...
最新文章
- c语言符号txt下载,c语言中符号含义.txt
- Thread.join()练习
- mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)
- mysql默认乐观锁悲观锁_MySQL中悲观锁和乐观锁到底是什么?-阿里云开发者社区...
- Vmware提示:the operation was canceled by the user
- 无线网卡共享Internet访问到电脑有线接口注意事项
- tomcat+路由器+oray
- fatal error: stropts.h: 没有那个文件或目录
- eclipse 主题设置
- 这个与流程管理相结合的低代码平台,你一定不能错过
- linux下xz格式,linux下 x.tar.xz格式文件的解压方法
- Java take和poll,Java多线程-CompletionService
- linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
- 微软Project Server 2016正式版下载:支持项目组合管理-搜狐
- android图形框架之surfaceflinger分析(一)
- 海康大华宇视等等安防监控摄像头转成WebRTC流实现Web浏览器超低延迟无插件直播新方案...
- IC卡,ID卡,M1卡,射频卡
- 在centos7中下载搜狗输入法
- 我是如何长期坚持阅读的:简易读书习惯培养|牛人读书炼成记
- 球队分组(java源码)