用到高德地图之后出现了许许多多的问题,其中一个就是定位权限的问题。
高德地图按照官档操作配置,打开之后发现地图也能显示出来,定位按钮也在,但是找不到小蓝点了,并且自己的位置出现在非洲(非洲??),也就是说根本不能实现定位的
操作,然后打发Manifest对照官网的权限配置看了一遍发现定位权限也有,跟官网的一致,那么问题就来了 ,为什么我点击定位按钮不会回到自己的位置呢?
一般用到的权限 如:
<uses-permission android:name="android.permission.INTERNET" />
这个就是打开运行应用网络访问的权限,像这种权限不需要用户自己操作,我们直接定义在Manidest中接可以使用。
为什么有的android程序的权限在开发的时候,不用在权限管理里面打开也可以正常使用呢?
这是因为google把permission权限分为好几个Protection leve,可以在google的官方文档的权限列表里面看到,其中,
危险级别的是需要用户经过选择允许才可以开启的,也就是说,需要开发者在程序代码中逻辑实现给用户选择,不然,
用户不知道是否需要开启所需要的权限;
那么就需要问们来提示用户打开权限,不然用户不知道权限是什么,就算是知道了估计也不会去设置里面打开,
这样用户体验是很差的。那么我们来看怎么提醒用户来打开权限呢?
//检测系统是否打开开启了地理定位权限 if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(this, new String []{android.Manifest.permission.ACCESS_COARSE_LOCATION},1); }
这样就会在应用需要定位权限的是时候提示用户打开需要的权限。
理解的很浅新手遇到或许能帮到,大神自己飘过........