在API大于Marshmallow的Android设备上,需要请求“ACCESS_FINE_LOCATION”权限才能访问位置信息。如果权限未被授予,我的位置图层将无法显示。 以下是解决方案:
在AndroidManifest.xml文件中添加以下权限:
在运行时动态请求权限,可以使用以下代码:
// 检查权限是否已被授予 if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { // 位置权限已被授予,进行相关操作 } else { // 位置权限未被授予,请求权限 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, REQUEST_CODE); }
在onRequestPermissionsResult方法中处理权限请求结果,可以使用以下代码:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_CODE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 权限已被授予,进行相关操作 } else { // 权限被拒绝,无法使用相关功能 } } }
一旦授予了位置权限,我的位置图层就会显示在地图上。