无需第三方sdk支持的定位功能实现

本文介绍了如何在Android Studio项目中不依赖第三方SDK实现定位功能。首先在AndroidManifest.xml配置高德定位所需的权限和服务,然后在app的Dependencies中添加库依赖。接着创建LocationManager类并实现定位相关方法,包括初始化定位、设置定位参数、监听定位结果等。最后在使用类中请求权限并启动定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定位功能

——无第三方sdk嵌入(Android Studio为例)

文档说明:没有内嵌第三方sdk的,通过重写定位相关方法实现定位功能

功能实现步骤:

一、清单文件: AndroidManifest.xml文件中

Key在activity上面,application里面;

Service在activity下面,在application里面。

清单文件配置:

<!--高德定位key -->

<meta-data

    android:name="com.amap.api.v2.apikey"

    android:value="您的key" />

<!--高德定位 -->

<service android:name="com.amap.api.location.APSService"></service>

清单文件中请求权限:


<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>

 

<!--高德定位key -->
<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="您的key"/>

<!--高德定位-->
<service android:name="com.amap.api.location.APSService"></service>

 

高德开发平台:申请key:

http://lbs.amap.com/dev/key/app 

获取sha1方法:

1.>android studio2.2以下:

如何获取SHA1:

双击signingReport

 


 

2.>android studio2.2及以上:

 

如果4未成功,进行这个操作

 

二、app的Dependencies中:

操作如下:File-Project Structure -app-Dependencies-“+”Library dependency-“com.amap.api:location:latest.integration”(如果搜索没有,请多输入几次)

 

 

三、以上都是配置,现在要开始编码啦

1.新建LocationManager 类

package com.seed.seedproject.manager.location;

import android.content.Context;

import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.seed.seedproject.bean.MapLocation;

import java.util.ArrayList;
import java.util.List;

/***
 * 定位
 */
public class LocationManager {

    public static final intSTATUS_OK =1;
    public static final int STATUS_ERROR= 0;
    private static LocationManagermLocationManager;
    private ContextmContext =null;
    private boolean mIsLocationing= false;
    private List<OnLocationResultListener>mListeners =new ArrayList<OnLocationResultListener>();

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值