Unity接入高德SDK实现定位
一.在高德官网下载需要对应的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实现定位相关推荐
- android打包jar包给unity使用接入高德sdk,实现定位。
https://blog.csdn.net/unity_http/article/details/79929454 https://blog.csdn.net/why1happy/article/de ...
- uni-app 微信小程序接入高德SDK
uni-app 微信小程序接入高德SDK 参考文档:https://lbs.amap.com/api/wx/gettingstarted 一.获取高德Key 配置高德key 二.获取高德key的操作步 ...
- Unity接高德SDK(Android)
Unity接高德SDK(Android) 项目中需要定位两个玩家之间的距离并且显示每个玩家精确的位置,刚开始本想使用Unity自带的定位系统来进行定位,然后加上淘宝的IP定位来获取玩家的位置,但是由于 ...
- 【Android笔记】Android 使用高德SDK获取定位
Android 使用高德SDK获取定位 在Android开发过程中,经常需要获取手机的定位,这里记录一下使用搞的定位的过程.我选择使用高德的SDK,其实也有Web的API,但是API使用IP定位,An ...
- Unity接入微信SDK——iOS(接入微信SDK)
Unity接入微信SDK--iOS(一 接入微信SDK) 下载微信SDK 下载地址:微信开放平台 导出Unity Xcode项目 导出Unity Xcode项目,并打开 微信SDK导入Xcode项目 ...
- Unity接入安卓sdk查看应用内存占用
注:若不清楚如何在unity中接入android sdk可先了解下相关流程.项目地址:http://download.csdn.net/download/yhuangher/9976564 在项目后期 ...
- Unity 接入第三方SDK打包闪退
在接入穿山甲sdk的时候,打包apk的时候出现适配部分机型,部分机型闪退,出现如下错误 图中可以看出是.so文件引起的问题. 接入第三方sdk的时候,有时候常常需要导入第三方jar包以及aar包,有些 ...
- Unity接入高德地图
第一步:Unity保存user.keystore文件 File→Build Settings→Player Settings 找到Publishing Settings,点击Create a new ...
- 接入高德 SDK 遇到的问题 01:语音导航中科大讯飞在线语音合成次数限制
需求:采用高德导航SDK实现路线导航,并且实现语音播报导航 问题:高德导航语音合成开发指南中,建议采用的科大讯飞在线语音合成存在次数限制,远远达不到生产环境的需求量 解决:采用百度离在线语音识别 An ...
最新文章
- 解释一下c语言 for(;;) printf(*);,printf()函数的一个问题
- java 视频切片_关于视频播放、视频切片、跨域访问视频
- 捣鼓 Subversion
- sqlserver 日常检查脚本
- 计算机专业到投行的工作需要的金融财务知识
- linux ce mysql安装_Linux 安装 MySQL 8.0
- python 线性回归回归 缺失值 忽略_python – 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?...
- Java基础---变量(三)
- Quartz教程:快速入门
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day7
- Windows学习总结(13)——各品牌电脑进入BIOS按键汇总
- Linux系统扩展oracle数据库所在的分区
- Python调用shell命令方式
- 网上鞋店html,“鞋店”是“shoes store”还是“shoe store”?
- JAVA加密--JCA、JCE、CSP概念、体系架构与使用示例
- 学车经验总结(科目二)
- 用支付宝如何自己拍证件照?
- python itchat教程_Python学习教程:教你用Python通过微信来控制电脑摄像头
- 树莓派(4B)DHT11实现温湿度获取+mysql数据库存储
- Gradle打包报错:Failed to calculate the value of task ‘:unityLibrary:compileReleaseJavaWithJavac‘