00:00
首先我们先建一个安卓的。腾讯准备一个项目。Great。现在等待这个项目创建完成。人在这里呢?您可以百度搜索一下腾讯位置服务,然后点这个网页。进到这里,然后先用先登录一下你的自己的开发者账号,然后完成个人开发者信息的一个填写,然后我们今天要实现的功能是腾讯的定位和腾讯的地图。请看一下定位。
01:05
腾讯定位,我们需要先创建平台的应用。可以看到门禁控制台。应用管理我的欲望。点创建应用。类型。其他。创建完成。然后我们添加,可以先不添加K,也可以添加K。还得添加一个可。New China location。
02:07
真是羡慕。启用即图组件SDK,即可使用地图SDK。我们现在先。如果你选了这个地图SDK,那么你是说你是需要输入这个应用的这个报名的,我们看我们项目创建完成没有。还没有完成,不过这个报名可以看到的,这个就是报名,或者说你打开manifest这里复制这个报名,然后放到这里也可以。这主要是用来限制你这个授权的应用的。请讲。相同名称的,那我就给。添加。
03:01
好了,这就是我们的key,这个key呢,会在我们的安卓manifest中进行一次配置,我们先放进去。请到project要放置一个文件。复制进去可以了,我们的K就放在这里了,下面呢,我们来进行一个。定位SDK的一个项目的配置,我们一起看一下他们官方文档怎么写的。Peter。嗯,我们先把key给它配置进去吧,就是安卓manifest。And the man f。切换到安卓模式下,容易找一些manifest,然后把这个key。Love of nine。
04:02
哦。那复制一下。好,往下走,Canips配置工程studio。有两种方式,一种是主动平台SDK,另外一种呢,就是通过GR进行配置,我们来使用grid。就是嗯,根目录,也就是project的grade的配置,然后是子目录。怎么录,就是APP下面的。Project。我没添加。目录APP的,也就是这里添加一个依赖。腾讯SDK哪里可以呢?SDK。
05:03
这是腾讯定位SDK的依赖了,我们点击这里进行一个同步,然后就会通过这里,通过这个地址去下载腾讯的依赖SDK定位依赖SDK库,下载好之后我们就可以直接使用了,就不需要通过导入SDK的方式把文件放到你的项目的AIB上面。这种方式很容易,更快捷,而且你可以看到它提示你。当你的S上有这个东西的时候,就说明这个版本现在不是最新的,那么怎么看最新的alt加回车,可以看到最新是7.3.3,我们点这里点进去。然后再同步,它就会下载7.3.3的版本。这就是用规的依赖项目的好处,虽然说我们已经定向到基能在三了,是它as上面并没有变异,还没有变译到,所以说这个不用管它,其实我们已经依赖上了。你看已经边上了,还要等一会,那就好了啊,那么这里我们就可以不用管它了,我们再往下看,看看需要什么东西。
06:14
然后是配置这些权限,我给它复制到这里面。配置了个权限。放进来。嗯,没什么问题。你们回到主页。在安卓6.0以下,安卓6.0以后呢,这个权限的配置需要。应该是需要动态权限的这个地方。你看一下我之前的文章写的时候有没有加动的权限,应该是要加动的权限的来说,应该就到位置。
07:01
为。我直接就定位了吗?看一下我的文章目录。那我应该是用了权限的,也就是我用的,我用的是当时我用的是这个权限。用了一个权限请求的一个库去做权限申请,那么现在我们把这个库也放到这个下面来。权限请求。同步一下。然后呢?我把不久文件看一下。嗯,过去我们这个不用管了。到时候再写一下就行了。Okay。We姓名。全线请求。
08:03
Request。An pro。是一个权限的to。订阅用得上X加吗?嗯,那就没什么问题,那主要是把这行代码。或者我们重新写也是可以的。嗯,因为它是安卓6.0以下嘛,所以说我们需要先检查安卓的版本,比如说我们现在这里先检查这个单子,他是六点以下,那么就不需要等待请求选型。就检查简单检查方法,回创检测方法这里做一个判断。
09:03
Can you be after。HS大于等于B。就是API23,也就是安卓1.0,这里我们看出来它是以上还是以下。嗯,这里就是安卓6077。这里我们需要控台请,那这里就直接请求了,这里就可以直接进进行定位了,那么在这里呢,我们需要进行一个权限的配置,那么就是request这个方法翻to s pro。
10:09
这样的话请求权限。然后我们通过RX,通过这个权限库去进行一个权限请求。那我们这里存的对象activity就是当前activity。'。当the home to request。我们把自己想求请求权限放进来,主要是权限的是这是可以通过any点点。这个是空缺位置。
11:00
打个逗号,下一个。刚才是进去位置,这个是粗略位置。啊,基本上有这两个权限也就够了,其实。然后我们加个订阅。这就是X加二里面的东西了,感觉用哪一个好一些?这个事。不用这个,我们就直接通过通过一个。一个lemon lemon lemon的表达式进行一个样的是语也可以。
12:04
那就这样。这样也可以。Check resource,就是相当于是你这添加一个东西,不检查结果是获得他们请求返回来的一个东西,那这里是有提示的,嗯,Message直接是一个to。
13:11
这我们就进行一个就请求全开成功。然后就可以开始定位了。我们给一个这样提示。就能知道,如果说你失败了之后酒店会开启,就不能够进行定位,我也给他一个提示。那么这个地方,下面我们来写这个权限请求的一个配置。首先呢,是这个样子,你好,给一个对象,那是腾讯的一个定位管理。Manager这样的东西,然后我们给他一个对一下。然后进行实例化,这个实地方我们可以在验式复试方的时候就进行实例化。Manage change为一。
14:02
刚才已经时间化了,那么通过这个东西就可以进行一个嗯,页面请求。就比如说我们写一个开始定位的方法。是初始化吗?还有就是检查查。区分开。实话说实话定位,那么这里我们先得到得到他的实力,然后呢,我们可以通过再写一个方法,比如说我们写一个。一开始。Has it。那么可以通过这个进行一个request。
15:03
然后是single fresh这个意思就是说单定位。那它需要什么,需要什么,需要什么参数呢?看一个location request,这定位一个location listen,就是一个定位的餐厅,另个是lo lo的话,我们就只是简单的根据他原来代码写,看框怎么写的。官网官网两次定位。你们先根据他这里来写。它的点参数是样子的。他就是这样子。没错。不过他这个是一个lesson,我们这里就用单纯的类来实现就行了。
16:05
当时类实现的话,我们就要实现这个接口培训。它是一个类似。预算首先你们的两个回调,回调方法。一个是状态改变,一个是定位改变。那我们要的参数其实就在这个定位改变里面去,所以说现在我们这里是肯定是。然后我们在定位的回调里面做一个参一个数据的打,嗯,还是用页面来显示一下,然后顺便再打印一下结果,这样会更好。我们先写一下布局。
17:09
先出去,然后垂直摆放。那么它可嗯这给去掉,我们用一个按钮来触发,就它定位。ANTIDBT。这个按钮的话,按钮看怎么给它摆放一下好看一些,哪个完了就先哪再改D,所以我们就称AT出我们的定位信息为智息。
18:10
然后我们给他居中居中。才算平均20。这里就会有显示的信息,我们加个颜色大小16。嗯,先这样,我们就这个可以先不管他了。下面我们去页面上去进行一个实现,如果说页面上只有一个按钮的话,你就可以这么写。直接写一个方法。点击时候就开始定位了,对吧,我们就这样看着一个呢,比如说str。
19:04
创建预算的方法,那么这是一个多态的方法,我们在这里面再调这个。对,你就这样调也可以。看这里有个这个view呢,就代表你这个按钮,点击点击按真是。按钮的单视图,这个是按钮的视图,我们在这里面调用这个单次定位。嗯,发个名给他改一下吧。就改成。这样的话我们就命名规范一下,这样我们就知道这是单次定位。就好好一点点。
20:01
那么下面我们还有一个text view需要进行一个从X6TTXS。嗯,还是不要用五行做事吧,用。For the summer。然这里可有位置信息,先给他进行一个处置方案,我就放这里,没办或者我们不这样放,规范一下,规范的写法是这样子,初始化,初始化,初始化。然后进行一个方法的创建。初示初始化,在这里面呢,我们就对页面上所有的控件进行一个初始化,比如说刚才这个text text就直接按ID,这样我们就可以直接使用这个text了。
21:17
现在呢,我们就可以进行一个。这里是它的一个返回定位的回调嘛,还有一些复试的定位,然后回进。嗯,我在这里不光要进行一个位置信息的显示,同时呢,我们还要打印一下这个信息。比如说我们打印这个CT,对打印这个CT比说所在的程式,那么这里有个TTT,就是我们这个当前类的这个对象。
22:06
创建一下。这个常量,那我们就为它成这个面,这两个贴铁的列名作为这个常量的值。然后这类。好了,我们现在打印了这个城市,那么现在我们就把这个城市这样吧,给它一个变量那个边放进来。Go there。Dress。这是进去,我们看这上面行。点卡的样子。诶,这里一个是打印日志,一个是在页面中显示。那么我们来看那里会有几步操作。
23:04
他进一面来,我们先想一想,可以进一面来,先进行一个位置权限的一个检查。对,你自己买菜先进行个测学院检查。如果说它不属于进面,就就就需要进行定位的话,那我们这里判断这个A其实可以不要了。如果说你是见面,你不是通过按钮来触发这个定位的一个请求,那么就就没有必要这么写。如果说你是通过。呃,思路的方式,比如说在这里写一个。就用这个方法也可以接受。这个这个意思就是说见一面是。这第一步以进面先初始化视图,然后初始化定位,然后检测版本,检测版本如果说你是安卓6.0以上及以上,那么请求权限有权限之后呢,我们在这里就权限请情况,我们给他一个提示,或者说如果权限未改也给他也给他一个提示。
24:11
当你请求成功之后,你就可以开始定位了,可以开始定位,那么这个时候我们再点击这个。点击这个按钮。点击是干的,然后就通过这个第二个方法去发起一个定位,然后发起定位之后呢,会有一个定位的回调,定位的回调在这里我们打印日志,并且获得页面上的显示效果。现在我连接一下自己的手机。定位的话,你最最好的是不要用虚拟机,或者说光机这个手机最好。你看这里就是显示我自己的手机了,那么现在我运行。我们只要看日志就行了。
25:13
第一次运行会有点慢,在后面就会很快。嗯,反正他闲着也是闲着,我们来看一下后面的就是单次定位,单次定位搞定之后呢,我们就看连续定位。你离快了呀。嗯,在安装呢。然后他会先请求权限。
26:00
然后如果提示呢,已经可以开始定位了,那么我们点这个单次定位。深圳市你看这里就会有返回的结果,就是我们刚才打印的。然后这里怎么说呢,我加一个那个。这样一个调试的吧,那你能看到我手机上的效果。Take a。嗯,等一下。Sample。你连接到手机上,然后我再运行一下,你看一下是什么样的效果。STEM。
27:02
嗯,有点慢,这个通过USB连接的有点慢。然后我点击一下这个单定位。有点难,确实有点难。你看深圳市。我放大一些,这样就能够看清楚了。深圳市对吧。这样就可以,那么再继续,我们有了这个定位信息之后,你还可以拿到一些别的信息。它不光是有未知信息,比如说你可以看到,但是你看里有一些其他的信息。比如说。这是区或者县。那么你再给他弄一下去,我的线的话。我的心,那么我可以再给他加一个。一个空的。
28:06
打印一下。是你安备一下,备注一下。你再先给它取消掉,再运行一下。我们点这个单词定位。No。
29:01
放大一些。嗯,深圳市区县宝安区没问题。那么哈,这里面还有一些其他的一些参数呢,需要你用户自己去进行一个使用,看这里还有一些其他的参数,P list provide produce这些。经度纬度,这个经纬度我们还是有必要给大家看一下这个经纬度,因为在地图中也会用到这个经纬度。看到的是精度。L开头的是维度,那么给他加一个金度,这是double类型维度。
30:01
嗯,我这里的话看一下,要不我就多写几个。SIX6。多写这个六吧,你一个显示感觉有点太紧凑了,多负责几个。现在有四个,这个是地址信息,我来改一下C。刚才那个叫什么来着。取我的线。还要进入。E是W都。然后呢,我们就直接运行。平方是是。
31:15
Not to。嗯,给他加个边距这上边距这上是十加个边。那我们在页面上这些对这些text进行一个。自己加到后面去。我想。直接给他复制过来算了。这样最快。
32:04
后是精度。The way do。注意这个秘密啊,淘宝命密。那四个对象嗯,就能绑定,进行一个绑定可以好。改好了,那么下面就直接进入一个赋值。最下面这最后。
33:09
比如说你是一个虚的星。Tract。这个线不赶趟。That's too。D。是曲线,这里是。
34:02
那么因为它这个地方我们用的是double,所以我们要加一个时区的一个默认的时区。所以他就会不起这种讨厌的这个颜色。嗯。最疲惫的只是。D。Int,还有double,还有float,这用都是D字母串,用的是S排分S,你用错了会报错的,下面我们再来运行一下,看是什么样的效果。这上面是慢了一慢了半拍的。Anyway。嗯。等一下我这里报错了好像。
35:01
那你没用,对吗?Promote。马,我是大,没错呀。等一下把手给它改进成进度。但是没做了才能再试一下。View。加那个一个。嗯,还是S吗?奇了怪了,如果这样可以的话,那我就这样弄算了。
36:18
再运行一下。锦州纬度一处。东经113,纬度23,我们给它放大一下,但看不清楚。And really?那么我们再来看一下连续定位是什么样的,连续定位其实就是在单次定位的基础上。
37:02
不停止就可以了。的一个神器的定位值,比如说定位周期位置监定器十秒钟。是否获取传感器方向,是否允许GPS?连续定位的话,我们就需要对这个对象进行一个嗯,设置了,就是这个request。比如说我们去开启这些设置。嗯,我们来配置一下。首先我们再加一个按钮吧。单子定位,我们再给他复制一下。One次定位。这里我们就不用了,直接就。
38:02
公司定位。嗯,就有两按钮,那么这里我们就也是用S。给他创建一个这样的方法。一下。这里刚才这里是单开始定位,这里就写在一个单里面,备注一下单词的定,然后我们方法是定位这个淘的二法后面就不加。案件。写在这里。它摆到上面去。后面。
39:06
那么你因为需要配置一下那个。Request request。他这是一个定位请求的对象,就通过这个对象来判断来控制你是否是单还是连续定位,那么这个配置我们也在这里进行,就是。空间,就算这邮箱现在已经是一块完成了,那么我们来按照这个上面写的来进行配置,你看用户可以随着定位器间隔时间的化为毫秒,不得小于1000毫秒,也就是说。
40:03
最少11秒钟,因为一次你不能太快了。这里是1万,那就是十秒钟,我们就改成。不少于,那么就可以等于。这定位间隔。那么自定义定位定格,再看下一个。根据用户的会制定的详细程度。可以选择不同的request level request level。治疗,这个也是有必要的。设置星球GP。这个level呢,就是用来控制你你返回什么样的数据,比如说我们这里看一下,它是有四个等级。浪的话就是全部包含,就好像刚才我们那里用的是浪,刚才这个地方,但是定位这里传,传进来的就是一个浪嘛。
41:02
等有零研就集or就是包,只包含经纬度clever name含经纬度位知名称,预知地址。然后就是更详细一些命就是说包含区行政区划分蒙PY。就是周围的POI列表,POI就是一个周围的一个兴趣范围列表,比如说你要搜索周围有哪些饭店啊,电影院啊,你是通过这个POI进行兴趣点搜索的。那么好了,我们已经搞懂了这个东西之后,刚才我们设置的。设计的是个什么?刚才设置的是一个L,也就是包含区划线的信息。在室外场景可以显著提升定位精度,通过GPS我也给它加上去GPS。嗯。
42:02
一旦设置为true。在回调的。Location里面通过get。就可以获得当前设备方向了。方法,GPS等方向信息。唱个划下,唱个号下,我们也给他放进去。然后是否开启室内定位。他这里文档写的有点问题,这里应该是小写的request。我虽然他写的英语,但是我们不能像他这样搞。
43:06
然后还有别的设置没有,那么没有了,基本上有这些就够了,那么我就发起这个定位。请求这个定位信息就行了,比如说我们要开启刚才这是单次定位吗?那是连续定位,那就manage request to you。这个对象参数好像是有两个不同的。He could。嗯,这里。有一个方法是两个参数,一个方法是三个参数,我们修这两个参数。然后我们把刚才的request配置request传起来,然后同时我们这里给它加一个这样做。
44:03
因为我们还是通过当前的activity去实现这个定位的回调,那么就这样写就行了,就是开始连续定位的话,如果说你不停止,它就会一直连续定位,就很浪费资源,那么所以说连续定位还有一个停止。或者用户可以自己决定这个。定位结果的回调线程,看你是在主线程回调还是怎么样,一般来说你如果不设置,你像这样子搞不设置它就默认的主线程,如果你设置,你可以是传子线程或者UI线程,都可以随你自己。返回结果,那么这里是停止定位。停止天,我们在什么时候进行庭审呢?
45:00
比如说我们在拿到访问结果复制完之后。请一次停止。嗯,这里因为用的是to,所以说可能不是很清晰,我这里加个备注,加个我回去是打印告诉他已经开始临时联系定位了,然后他什么时候停是。那么再返回这里,当他赋完值之后,我们就给他来一个原目录。这个意思就是停止。在之后我们就已经停止了这个定位,同时我们就已设印logo。
46:18
停止连续定位回调。那我们这个病临一个问题,就是说当我。单次定位的时候,我们就不能触发这个方法对吧?那么怎么样来避免呢?它都是同一个回调,怎么去避免的,我们可以加个值来进行一个判断,判断是单次还是多次对吧,这样一个值,比如说。The flag。
47:19
说话有问题。我们这样来写的话,通过这个值来判断一下,那么我们需要对这个lo进行一个赋值了,比如说我们单次定位的时候,那这里称之为force。那多次定位的时候,那那是初,那我们在它是同一个回调,我们在回调中们进行一个初步的公式的判断,就能知道它是单词还是多次。对吧,如果说if如果他会处的话。
48:04
如果它为数,那么。他就是多次。我们在这里,我们就给他一个停止。六。一个。对,就这样搞,这样搞的好处就是说他两个就不会冲突了,那么现在我们再来运行一下。嗯,再运行一下。
49:09
暂停。看结果。现在什么都没有对吧,我们先来点一下单词定位。那我们看一下日志。单词定位反回去。没错,这进了A对吧,没错,然后我们再点一下多次定位。开始连续定位到深圳市保安区,要停止连续定位。也没错,那么这样我们就搞定了单次和多次的定位。
50:03
嗯,那这个事情我就先这样子,先看一下效果怎么样,如果不行的话,后面我就再考虑换个方式,如果行的话再说。就这样,拜拜。就这样,拜拜。
我来说两句