一笑·科奉

百度鹰眼二次开发摸索笔记

作者: 一笑, 写于: 2019-04-08 14:03:03

1、注册账号和获取AK

教程:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/key

地址:http://lbsyun.baidu.com/apiconsole/key

image.png

2、创建鹰眼服务

教程:http://lbsyun.baidu.com/index.php?title=yingyan/guide/webmanager

地址:http://lbsyun.baidu.com/trace/admin/service

image.png

3、下载并架设鹰眼API

源码:https://github.com/baidu-openmap-trace/web-demo-v3/

(1)首先安装nodejs

(2)安装fis3

* 注意:linux/mac系统需要使用sudo,window系统无需增在命令行前增加sudo

sudo install -g fis3

(3)执行fis3验证安装是否成功

fis3

image.png

(4)下载源码放到项目目录比如:/Users/liupeng/Sites/tcube_tools/android/TcubeLocator2/api/,并在命令行界面进入此目录

cd /Users/liupeng/Sites/tcube_tools/android/TcubeLocator2/api/

image.png

(5)执行安装

npm install

image.png

(6)按照提示再执行

sudo npm audit fix

image.png

(7)再刚才项目目录执行,开启运行demo

fis3 server start

打开页面后,点manager.html可以看到demo页面了,但此时的页面并没有绑定服务ID,所以里面的数据都是空的

image.png

image.png

(8)绑定Service ID

打开./manager.html,编辑24行ak=自己的ak

image.png

(9)重点是得到Service ID和SK


4、新建Andorid项目

image.png

名称和目录随自己定

image.png

设置为Andorid 6.0

image.png

选择Empty Activity

image.png

创建完成后效果如下图

image.png

5、下载android SDK及配置

教程:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/buildproject

下载sdk:http://lbsyun.baidu.com/index.php?title=android-yingyan/sdkandev-download

(1)首先新建MyApplication/app/src/main/jniLibs目录,并将解压后的所有SO文件复制到这个目录中

image.png

image.png

(2)然后将解压后的所有jar文件复制到MyApplication/app/libs/目录

image.png

image.png

(3)将视角改为"Project",

image.png

最终在android studio中显示的效果如下:

image.png

(3)注册jar文件,全部选中app/libs中的jar文件,右键选中“Add As Library...”

image.png

选择OK

image.png

(4)设置AndroidManifest.xml,在application中分别增加如下语句

参考教程:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/hellotrace

<!-- 在Application标签中声明service组件,每个APP拥有自己独立的鹰眼追踪service -->
<service
    android:name="com.baidu.trace.LBSTraceService"
    android:enabled="true"
    android:process=":remote">
</service>
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入对象存储BOS数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!-- SD卡读取权限,用于写入对象存储BOS数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<!-- 用于加快GPS首次定位-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!-- 用于Android M及以上系统,申请加入忽略电池优化白名单-->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"></uses-permission>
<meta-data
    android:name="com.baidu.lbsapi.API_KEY"
    android:value="AK开发者申请的Key" />

添加的位置见下图:

image.png

(5)在MainActivity.java文件中增加引用

import com.baidu.trace.Trace;
import com.baidu.trace.LBSTraceClient;
import com.baidu.trace.model.OnCustomAttributeListener;
import com.baidu.trace.model.OnTraceListener;
import com.baidu.trace.api.track.OnTrackListener;
import com.baidu.trace.api.fence.OnFenceListener;
import com.baidu.trace.api.entity.OnEntityListener;
import com.baidu.trace.api.analysis.OnAnalysisListener;
import com.baidu.trace.api.bos.OnBosListener;

效果图如下

image.png

参考教程:http://lbsyun.baidu.com/index.php?title=android-yingyan/guide/hellotrace

(6)增加权限提示

@Override
protected void onStart(){
    super.onStart();
    List<String> permissions = new ArrayList<>();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && isNeedRequestPermissions(permissions)) {
        requestPermissions(permissions.toArray(new String[permissions.size()]), 0);
    }
}

private boolean isNeedRequestPermissions(List<String> permissions) {
    // 定位精确位置
    addPermission(permissions, Manifest.permission.ACCESS_FINE_LOCATION);
    // 存储权限
    addPermission(permissions, Manifest.permission.WRITE_EXTERNAL_STORAGE);
    // 读取手机状态
    addPermission(permissions, Manifest.permission.READ_PHONE_STATE);
    return permissions.size() > 0;
}
private void addPermission(List<String> permissionsList, String permission) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
            && checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
        permissionsList.add(permission);
    }
}

(7)mac下获取sha1

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android



分类: 未分类, 浏览: 40, 评论: 0
原创文章转载请注明:转自《一笑·科奉》 原文地址:https://www.kefong.com/post/106.html