Android 定位地址,获取经纬度,并转换为中文地址
Android 定位地址,获取经纬度,并转换为中文地址
不用百度和谷歌等api,直接获取经纬度,并根据获取到的经纬度转换为中文地址
第一步,判断应用是否开启了位置定位的权限
首先判断应用是否开启了位置定位的权限(没有开启时会弹出开启权限的提示框,若已经开启权限,就执行后续的操作):
/**
* 检测位置权限
* @param activity
*/
public static void checkLocationPermission(Activity activity){
Context context = activity;
//获取权限(如果没有开启权限,会弹出对话框,询问是否开启权限)
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//请求权限
ActivityCompat.requestPermissions(activity, new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION}, LOCATION_CODE);
} else {
JudgeIMLine(context);
}
}
第二步,重写onRequestPermissionsResult方法来监控权限的变化。
当用户权限变化时,此回调方法会被调用:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case LOCATION_CODE:
if (grantResults.lengt