Android 原生定位开发(解决个别手机定位失败问题)



前言

在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便。定位一般分为三种发方案:即GPS定位、Google网络定位以及基站定位。


本文分别介绍GPS定位、以及基于Google的网络Wifi定位的详细步骤,(小米手机获取位置信息locationManager.getLastKnownLocation(provider)的Location一直为空,查了资料换了种获取手机getProviders的方式就可以了)

一、实现步骤

一般来说我们实现原生定位的流程大概是:先判断有无权限》有权限启动一个LocationSrevice去获取定位》最后携带所需的定位信息返回,进行开发。

二、使用步骤

1.服务启动工具类

代码如下(示例):大概步骤如下,权限请求可自定义开发关键的是LocationService

/**
 * 获取定位
 */
public class MyLocationManager implements LocationService.LocationCallBack {
   
    private Activity context;
    private OnLocationListener onLocationListener;
    private String[] stringsLocation = new String[]{
   Permission.ACCESS_FINE_LOCATION, Permission.ACCESS_COARSE_LOCATION};

    @Override
    public void Location_Return(double Location_latitude, double Location_longitude, String province, String city, String area, String featureName) {
   
        onLocationListener.OnLocation(Location_latitude, Location_longitude, province, city, area, featureName);
    }

    public interface OnLocationListener {
   
        void OnLocation(double Location_latitude, double Location_longitude, String province, String city, String area, String featureName);
    }

    public void setOnLocationListener(OnLocationListener onLocationListener) {
   
        this.onLocationListener = onLocationListener;
    }

    public MyLocationManager(@NonNull Activity context) {
   
        this.context = context;
        if (!XXPermissions.isGranted(context, stringsLocation)) {
   
            MessageDialog codeDialog = new MessageDialog(context, "位置信息权限使用说明", "为确保你能在******内使用位置信息******,******需要获取你的位置信息权限。允许后,你可以随时通过手机系统设置对授权进行管理。", "取消", "去授权");
            codeDialog.setCancelable(false);
            codeDialog.show();
            codeDialog.setOnSumbitTextCodeListener(() -> {
   
                doMainPermission();
                codeDialog.dismiss();
            });
            codeDialog.setOnCancelListener(() -> {
   
                codeDialog.dismiss();
            });
        } else {
   
            initData();
        }

    }

    private void doMainPermission() {
   
        XXPermissions.with
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易明~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值