首页 > 其他分享 >unity3d,android平台下,高德地图定位,定位模式设定

unity3d,android平台下,高德地图定位,定位模式设定

时间:2023-01-04 13:37:56浏览次数:47  
标签:定位 unity3d text txtInfo AMapLocationMode AMapLocationClientOption android com cl


接上一篇,有时候不是想偷懒,实在是不会用android studio再次打包啊。


高德地图定位android sdk中,设置定位模式,java代码如下:

//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);


在unity中,用

ndroidJavaObject redValue = 
new AndroidJavaClass("com.amap.api.location.AMapLocationClientOption.AMapLocationMode")
.GetStatic<AndroidJavaObject>("Hight_Accuracy");

的方法获得,反编译了以后,发现,AMapLocationMode是AMapLocationClientOption类下的枚举,没见到源码,不知道到底是哪的原因。


后来发现,用

txtInfo.text = txtInfo.text + "\r\n";
AndroidJavaObject hightAccuracy = new AndroidJavaClass("com.amap.api.location.AMapLocationClientOption$AMapLocationMode").GetStatic<AndroidJavaObject>("Hight_Accuracy");
txtInfo.text = txtInfo.text + "hightAccuracy..."+hightAccuracy.Call<string>("name");

的方法可以获取AMapLocationMode.Hight_Accuracy的枚举,但是在设置定位模式方法中使用时


txtInfo.text = txtInfo.text + "\r\n";
mLocationOption.Call ("setLocationMode", hightAccuracy);
txtInfo.text = txtInfo.text + "setLocationMode...";

始终报错,不知道是unity的问题还是sdk的问题,还是我的问题。


我最后解决的办法是,重新写个辅助的jar把这个绕过去

java代码

package com.nsh.amaphelp;

import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationClientOption.AMapLocationMode;

public class AMapLocationModeHelper {

public void setHA(AMapLocationClientOption clientOption){
clientOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
}

public void setBS(AMapLocationClientOption clientOption){
clientOption.setLocationMode(AMapLocationMode.Battery_Saving);
}

public void setDS(AMapLocationClientOption clientOption){
clientOption.setLocationMode(AMapLocationMode.Device_Sensors);
}
}


unity代码

AndroidJavaObject helper =new AndroidJavaObject("com.nsh.amaphelp.AMapLocationModeHelper");
txtInfo.text = txtInfo.text + "helper get...";

txtInfo.text = txtInfo.text + "\r\n";
helper.Call("setHA",mLocationOption);
txtInfo.text = txtInfo.text + "mode set...";

终于是过去了,总感觉不爽,不知道到底问题在哪。


后面还好多事情呢,先这样吧。

如果哪位大侠能告诉我,问题在哪或者怎么做更好,360度跪求一定告诉我,在此谢过先。


标签:定位,unity3d,text,txtInfo,AMapLocationMode,AMapLocationClientOption,android,com,cl
From: https://blog.51cto.com/u_15929643/5988301

相关文章

  • unity3d调用jar类中的方法和属性
    这里用的unity3d的版本是5.3.2在eclipse里新建一个java工程,并导出成jar。packagecom.innyo.androidplugin;publicclassapTest{publicapTest(StringinString){t......
  • PhoneGap2.9.0本地将html打包成Android应用
    PhoneGap的在线打包有大小限制,超过30M的包无法在线打包。当然,可以把包里面的图片、声音文件去掉,然后打包。下载以后,解包,重新打包并签名。蛮麻烦的。本地打包的简单方法如下:......
  • unity3d,android平台下,高德地图搜索附近
    今天把高德地图androidsdk搜索附近的功能搞定了。和定位一样,引入jar,AndroidManifest.xml和定位的一样,没有需要修改的地方。改的多的是Java插件。原java示例代码中,query=n......
  • unity3d,android平台下,高德地图定位
    这里,用了一个比较偷懒的办法,直接用高德提供的android定位sdk,没有重新编译。好处是省事,坏处是,没法修改默认的定位模式。部分信息获取不到。如果需要完整的功能,还是需要重新编......
  • unity3d 尝试 基于地理定位的 增强现实
    首先说,这个尝试失败,属于死在去医院的路上那种。基于地理定位的增强现实,AR全息实景,是一种高大上的说法,说直白点就是山寨类似随便走这样的应用。打开应用,搜索周边信息,然后再把......
  • unity3d,异步加载场景
    很简单,代码如下:usingUnityEngine;usingSystem.Collections;usingUnityEngine.UI;publicclassLoading:MonoBehaviour{publicSliderloading_bar;privateAsyncO......
  • unity+高德定位=pokemon go 山寨demo安卓版
    这两周尝试了下用高德地理定位和Unity来做个山寨的pokemongo的demo,只能在安卓下使用。游戏过程视频:​​http://www.bilibili.com/video/av6836823/​​场景一这里是获取......
  • 《Unity3D平台AR开发快速上手--基于EasyAR4.0》随书资源和相关说明
    新手《Unity3D平台AR开发快速上手–基于EasyAR4.0》上市了,现在京东和淘宝都有卖。书分为2个部分,第一部分是EasyAR4.0基础内容和使用,第二部分是利用EasyAR的稀疏空间地图做室......
  • SoC低功耗问题定位及优化的10个思路
    在低功耗特性中,软件可能实现起来并没有那么难,从设计到实现的时间可能并不会耗时特别长,耗时最长的是后续的商用问题定位以及对功耗的优化,这些都是建立在一定的实战基础上才......
  • UI自动化定位实用技巧之暂停脚本运行
    一、当我们定位报错信息时,错误提示只有1,2秒钟的时间,不好定位,就可以打开F12,切换到“Sources”,可以手动暂停脚本运行或F8快捷键暂停       二、暂停之后,再......