一.在高德官网下载需要对应的SDK  http://lbs.amap.com/api/android-location-sdk

通过SHA1值获取对应的key值

a.SHA1值得获取:  1.在cmd中定位到 .android

2.输入keytool -list -v -keystore debug.keystore   口令是:android   

二.导入下载的高德sdk  和classes  jar文件放在lib文件下

并点击右键添加依赖

三.编写主函数

public class MainActivity extends UnityPlayerActivity{//声明mLocationClient对象public AMapLocationClient mLocationClient = null;public AMapLocationClientOption mLocationOption = null;private String LocationInfo;private String ErrorInfo="";protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);}//获取定位信息public String[] GetInfo(){String[] a=new String[2];a[0]=this.LocationInfo;a[1]=this.ErrorInfo;startLocation();return a;}protected void onStart(){super.onStart();}private void startLocation(){this.mLocationClient = new AMapLocationClient(getApplicationContext());//回调监听this.mLocationClient.setLocationListener(this.mLocationListener);//初始化定位参数this.mLocationOption = new AMapLocationClientOption();this.mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);this.mLocationOption.setInterval(1000L);this.mLocationOption.setHttpTimeOut(10000l);this.mLocationOption.setNeedAddress(true);this.mLocationClient.setLocationOption(this.mLocationOption);this.mLocationClient.startLocation();}public AMapLocationListener mLocationListener = new AMapLocationListener() {@Overridepublic void onLocationChanged(AMapLocation location) {if (location != null) {if (location.getErrorCode() == 0) {StringBuffer sb = new StringBuffer(256);SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date(location.getTime());String time=df.format(date);sb.append("时间: " + time);sb.append("\n纬度:" + location.getLatitude());sb.append("\n经度:" + location.getLongitude());sb.append("\n精度:" + location.getAccuracy());sb.append("\n地址:" + location.getAddress());sb.append("\n国家信息:" + location.getCountry());sb.append("\n省信息:" + location.getProvince());sb.append("\n城市信息:" + location.getCity());sb.append("\n城区信息:" + location.getDistrict());sb.append("\n街道信息:" + location.getStreet());sb.append("\n街道门牌号信息:" + location.getStreetNum());sb.append("\n城市编码:" + location.getCityCode());sb.append("\n地区编码:" + location.getAdCode());LocationInfo = sb.toString();}else {StringBuffer errorinfo = new StringBuffer(256);errorinfo.append("错误代码:"+location.getErrorCode());errorinfo.append("\n"+location.getErrorInfo());ErrorInfo=errorinfo.toString();}}}};

四.将模块打包成aar格式供unity交互

修改 build.gradle文件

第一步:将apply plugin: 'com.android.appcation'修改为

apply plugin: 'com.android.library'
第二部:删除  applicationId "com.test.sdk1"   
第三步:在AndroidMainfest文件中修改
android:theme="@android:style/Theme.NoTitleBar">  添加
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/> 
第四步:在AndroidManifest.xml的application标签中配置Key:
<meta-data android:name="com.amap.api.v2.apikey" android:value="您的Key"></meta-data>
             在application标签中声明service组件:
<service android:name="com.amap.api.location.APSService"></service>          
          在AndroidManifest.xml中配置权限:
<!--用于进行网络定位-->
<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>

最后build就可以打包成aar包了

五.unity中访问android

将打包出来的aar文件和AndroidMainifest文件放在Plugins/Android文件夹下

此时就可以编写c#代码了

public class Test : MonoBehaviour
{public Text content;public Button button;AndroidJavaClass jc;AndroidJavaObject jo;void Start(){content.text = "654321";OnStart();}public void GetLocation(){string[] a;OnStart();a = jo.Call<string[]>("GetInfo");content.text = a[0];if (a[1] != ""){content.text = a[1];}}void OnStart(){jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");jo = jc.GetStatic<AndroidJavaObject>("currentActivity");}

unity调用android中的一些函数

这样就简单的实现高德的定位功能啦!

Unity接入高德SDK实现定位相关推荐

  1. android打包jar包给unity使用接入高德sdk,实现定位。

    https://blog.csdn.net/unity_http/article/details/79929454 https://blog.csdn.net/why1happy/article/de ...

  2. uni-app 微信小程序接入高德SDK

    uni-app 微信小程序接入高德SDK 参考文档:https://lbs.amap.com/api/wx/gettingstarted 一.获取高德Key 配置高德key 二.获取高德key的操作步 ...

  3. Unity接高德SDK(Android)

    Unity接高德SDK(Android) 项目中需要定位两个玩家之间的距离并且显示每个玩家精确的位置,刚开始本想使用Unity自带的定位系统来进行定位,然后加上淘宝的IP定位来获取玩家的位置,但是由于 ...

  4. 【Android笔记】Android 使用高德SDK获取定位

    Android 使用高德SDK获取定位 在Android开发过程中,经常需要获取手机的定位,这里记录一下使用搞的定位的过程.我选择使用高德的SDK,其实也有Web的API,但是API使用IP定位,An ...

  5. Unity接入微信SDK——iOS(接入微信SDK)

    Unity接入微信SDK--iOS(一 接入微信SDK) 下载微信SDK 下载地址:微信开放平台 导出Unity Xcode项目 导出Unity Xcode项目,并打开 微信SDK导入Xcode项目 ...

  6. Unity接入安卓sdk查看应用内存占用

    注:若不清楚如何在unity中接入android sdk可先了解下相关流程.项目地址:http://download.csdn.net/download/yhuangher/9976564 在项目后期 ...

  7. Unity 接入第三方SDK打包闪退

    在接入穿山甲sdk的时候,打包apk的时候出现适配部分机型,部分机型闪退,出现如下错误 图中可以看出是.so文件引起的问题. 接入第三方sdk的时候,有时候常常需要导入第三方jar包以及aar包,有些 ...

  8. Unity接入高德地图

    第一步:Unity保存user.keystore文件 File→Build Settings→Player Settings 找到Publishing Settings,点击Create a new ...

  9. 接入高德 SDK 遇到的问题 01:语音导航中科大讯飞在线语音合成次数限制

    需求:采用高德导航SDK实现路线导航,并且实现语音播报导航 问题:高德导航语音合成开发指南中,建议采用的科大讯飞在线语音合成存在次数限制,远远达不到生产环境的需求量 解决:采用百度离在线语音识别 An ...

最新文章

  1. 解释一下c语言 for(;;) printf(*);,printf()函数的一个问题
  2. java 视频切片_关于视频播放、视频切片、跨域访问视频
  3. 捣鼓 Subversion
  4. sqlserver 日常检查脚本
  5. 计算机专业到投行的工作需要的金融财务知识
  6. linux ce mysql安装_Linux 安装 MySQL 8.0
  7. python 线性回归回归 缺失值 忽略_python – 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?...
  8. Java基础---变量(三)
  9. Quartz教程:快速入门
  10. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day7
  11. Windows学习总结(13)——各品牌电脑进入BIOS按键汇总
  12. Linux系统扩展oracle数据库所在的分区
  13. Python调用shell命令方式
  14. 网上鞋店html,“鞋店”是“shoes store”还是“shoe store”?
  15. JAVA加密--JCA、JCE、CSP概念、体系架构与使用示例
  16. 学车经验总结(科目二)
  17. 用支付宝如何自己拍证件照?
  18. python itchat教程_Python学习教程:教你用Python通过微信来控制电脑摄像头
  19. 树莓派(4B)DHT11实现温湿度获取+mysql数据库存储
  20. Gradle打包报错:Failed to calculate the value of task ‘:unityLibrary:compileReleaseJavaWithJavac‘

热门文章

  1. .msi文件安装报错
  2. mysql的zip安装教程
  3. provide inject
  4. 用matlab实现熵权法,熵权法原理及matlab代码实现
  5. int8 和 uint8 区别
  6. “大数据”爆发时代,国内存储产业加速发展
  7. 调音台使用基础-通道条、信号流简介
  8. Kurento-6.7.1 媒体服务器搭建详细教程(Kurento-Media-Server)
  9. 金航数码再度携手 The Open Group年度峰会
  10. MySQL中三种表关系的建立