Android中的位置管理器怎么使用
Android中的位置管理器怎么使用
这篇文章主要介绍“Android中的位置管理器怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android中的位置管理器怎么使用”文章能帮助大家解决问题。
一、在Manifest里声明合适的权限
要想获取位置更新,第一步需要在manifest里声明合适的权限。如果忘了声明相应的权限,那么你的应用在运行时会报安全异常。当你使用LocationManagement方法的时候,需要设置权限ACCESS_CORASE_LOCATION或者 ACCESS_FINE_LOCATION,例如,如果你的应用使用了基于网络的信息服务,你需要声明N ACCESS_CORASE_LOATION权限,要想获取GPS请求你需要声明ACCESS_FINE_LOCATION权限。值得注意的是如果你声明了ACCESS_FINE_LOCATION权限隐含着你也声明了ACCESS_CORASE_LOCATION权限。 假如一个应用使用了基于网络的位置的信息服务,你需要声明因特网权限。
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permissionandroid:name="android.permission.INTERNET"/>
二、获得一个位置管理的引用
LocationManager是一个主类,在android里你通过这个类你可以使位置服务。使用方法类似于其他的服务,通过调用 getSystemService方法可以获得相应的引用。如果你的应用想要在前台(在Activity里)获得位置更新,你应该在onCreate() 里执行以下语句。
LocationManagerlocationManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
三、挑选一个位置提供者
当没有请求的时候,现在大部分android电源管理可以通过多种底层技术可以获得位置更新,这种技术被抽象为LocationProvider类的应 用。在时间、精度、成本、电源消耗等方面,位置提供者有不同的运行特性。通常,像GPS,一个精确的位置提供者,需要更长的修正时间,而不是不精确,比如 基于网络的位置提供者。 通过权衡之后你必须选择一种特殊的位置提供者,或者多重提供者,这些都依赖与你的应用的客户需求。例如,比如说一个关键点的签到服务,需要高精度定位,而 一个零售商店定位器使用城市级别的修正就可以满足。下面的代码段要求一个GPS提供者的支持。
LocationProviderprovider=locationManager.getProvider(LocationManager.GPS_PROVIDER);
你提供一些输入标准,比如精度、功率需求、成本等等,让android决定一个最合适的位置匹配提供者。下边的代码片段需要的是更精确的位置提供者而不是 考虑成本。需要注意的是这个标准不能帮你解决任何的提供者,可能返回值为空。这个时候你的应用应该能够很好的处理这种情况
//Retrievealistoflocationprovidersthathavefineaccuracy,nomonetarycost,etcCriteriacriteria=newCriteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setCostAllowed(false);...StringproviderName=locManager.getBestProvider(criteria,true);//Ifnosuitableproviderisfound,nullisreturned.if(providerName!=null){...}
四、检查位置提供者是否使能
在设置里,一些位置提供者比如GPS可以被关闭。良好的做法就是通过调用isProviderEnabled()方法来检测你想要的位置提供者是否打开。如果位置提供者被关闭了,你可以在设置里通过启动Intent来让用户打开。
@OverrideprotectedvoidonStart(){super.onStart();//ThisverificationshouldbedoneduringonStart()becausethesystemcalls//thismethodwhentheuserreturnstotheactivity,whichensuresthedesired//locationproviderisenabledeachtimetheactivityresumesfromthestoppedstate.LocationManagerlocationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);finalbooleangpsEnabled=locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);if(!gpsEnabled){//Buildanalertdialogherethatrequeststhattheuserenable//thelocationservices,thenwhentheuserclicksthe"OK"button,//callenableLocationSettings()}}privatevoidenableLocationSettings(){IntentsettingsIntent=newIntent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);startActivity(settingsIntent);}
关于“Android中的位置管理器怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。
推荐阅读
-
我的世界windows版怎么下载手机版
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
怎么使用Android基准配置文件Baseline Profile方案提升启动速度...
-
HTML5如何实现禁止android视频另存为
HTML5如何实现禁止android视频另存为今天小编给大家分享一...
-
学java好还是学php好?