我正在开发与地图相关的 android 应用程序,如果未启用位置服务,我需要在客户端开发中检查位置访问是否启用,显示对话框提示。
如何在android中以编程方式启用“位置访问”?
原文由 NarasimhaKolla 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在开发与地图相关的 android 应用程序,如果未启用位置服务,我需要在客户端开发中检查位置访问是否启用,显示对话框提示。
如何在android中以编程方式启用“位置访问”?
原文由 NarasimhaKolla 发布,翻译遵循 CC BY-SA 4.0 许可协议
private ActivityResultLauncher<IntentSenderRequest> resolutionForResult;
resolutionForResult = registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
if(result.getResultCode() == RESULT_OK){
//Granted
}else {
//Not Granted
}
});
private void enableLocationSettings() {
LocationRequest locationRequest = LocationRequest.create()
.setInterval(10 * 1000)
.setFastestInterval(2 * 1000)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest);
LocationServices
.getSettingsClient(requireActivity())
.checkLocationSettings(builder.build())
.addOnSuccessListener(requireActivity(), (LocationSettingsResponse response) -> {
// startUpdatingLocation(...);
})
.addOnFailureListener(requireActivity(), ex -> {
if (ex instanceof ResolvableApiException) {
try{
IntentSenderRequest intentSenderRequest = new IntentSenderRequest.Builder(((ResolvableApiException) ex).getResolution()).build();
resolutionForResult.launch(intentSenderRequest);
}catch (Exception exception){
Log.d(TAG, "enableLocationSettings: "+exception);
}
}
});
}
原文由 EhtA Sham 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
使用以下代码进行检查。如果禁用,将生成对话框