高德地图所使用的权限
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--GPS定位-- 之前不显示蓝点>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--声明后台定位权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
写完后发现蓝点没出来,看遍文档也没发现原因,发现要显示定位蓝点,需要 ACCESS_FINE_LOCATION 权限
另外,还需要判断gps有没有打开,没有的话需要引导用户打开gps
//判断gps是否打开
fun isOpenGps():Boolean = (context.getSystemService(Context.LOCATION_SERVICE) as
LocationManager)
.run {
isProviderEnabled(LocationManager.GPS_PROVIDER)
}
//跳转到打开gps设置页面
fun openGPSSetting(activity:Activity,requestCode:Int) = activity.startActivityForResult(Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS),requestCode)
fun openGPSSetting(fragment:Fragment,requestCode:Int) = fragment.startActivityForResult(Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS),requestCode)
网友评论