这是一套完整的代码,模拟器与真机调试可用
1.首先得注册权限
android:name="android.permission.ACCESS_COARSE_LOCATION"
android:name="android.permission.ACCESS_FINE_LOCATION"
1.1其次最重要的是,申请权限,一直真机调试不成功,折磨死我啦,放在protected void onCreate方法就可以
if(ContextCompat.checkSelfPermission(EventsReportedActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED){//未开启定位权限
//开启定位权限,200是标识码
ActivityCompat.requestPermissions(EventsReportedActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},200);
}else{
initLocation();//初始化定位信息
Toast.makeText(EventsReportedActivity.this,"已开启定位权限", Toast.LENGTH_LONG).show();
}
1.2这边再回调一下
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 200://刚才的识别码
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){//用户同意权限,执行我们的操作
initLocation();//开始定位
}else{//用户拒绝之后,当然我们也可以弹出一个窗口,直接跳转到系统设置页面
Toast.makeText(EventsReportedActivity.this,"未开启定位权限,请手动到设置去开启权限",Toast.LENGTH_LONG).show();
}
break;
default:break;
}
}
写到这里差不多就结束啦,
2.获取经纬度
2.1工具类
package com.skyinfor.szls.Util;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Locatio

本文详细介绍了如何在Android应用中请求并处理定位权限,包括注册所需权限、在Activity中请求和回调,以及通过LocationUtils获取经纬度并转化为具体地址的过程。

5344

被折叠的 条评论
为什么被折叠?



