static public void getLocation(ShopListActivity activity) { //初始化定位 final AMapLocationClient mLocationClient = new AMapLocationClient(SmApplication.getInstance().getApplicationContext()); //设置定位回调监听 mLocationClient.setLocationListener(new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation amapLocation) { if (amapLocation.getErrorCode() == 0) { // double latitude = amapLocation.getLatitude();//获取纬度 // double longitude = amapLocation.getLongitude();//获取经度 // LatLng nowLng = new LatLng(latitude, longitude);//当前定位点经纬度 mLocationClient.onDestroy(); // EventBus.getDefault().post(new LatLng(latitude, longitude)); EventBus.getDefault().post(amapLocation); } else { Toast.makeText(SmApplication.getInstance().getApplicationContext(), amapLocation.getErrorInfo(), Toast.LENGTH_SHORT).show(); } } }); //初始化AMapLocationClientOption对象 AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。 mLocationOption.setInterval(10000); //设置是否返回地址信息(默认返回地址信息) mLocationOption.setNeedAddress(true); //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。 mLocationOption.setHttpTimeOut(20000); //给定位客户端对象设置定位参数 mLocationClient.setLocationOption(mLocationOption); //启动定位 if (PermissionsUtil.hasPermission(activity, neededPermissions)) { mLocationClient.startLocation(); } else { PermissionsUtil.requestPermission(activity, new PermissionListener() { @Override public void permissionGranted(@NonNull String[] permissions) { } @Override public void permissionDenied(@NonNull String[] permissions) { } }, neededPermissions); } }
PermissionGrantor,一行代码搞定动态权限申请
猜你喜欢
转载自blog.csdn.net/johnyin2015/article/details/78462810
今日推荐
周排行