unity制作app(3)--gps定位

news/2024/9/24 22:35:16/

1.unity中定位Unity之GPS定位(高德解析)_unity gps定位-CSDN博客

代码需要稍微修改一下,先把脚本绑到一个button上试一试!

2.先去高德地图认证(app定位)

创建应用和 Key-Web服务 API | 高德地图API (amap.com)

 3.代码大致如下所示:

using UnityEngine;
using System.Collections;
using LitJson;
using UnityEngine.Networking;
//using UnityTools;
using UnityEngine.Android;
namespace Location
{public class LocationTest : MonoBehaviour{private string longitude;//经度private string latitude;//纬度void Start() => StartCoroutine(StartGPS());IEnumerator StartGPS(){//Unity给我们提供的一个相关权限类 Permission,可以判断当前相关权限是否开启if (Permission.HasUserAuthorizedPermission(Permission.FineLocation)){//如果没有开启就提示开启权限Permission.RequestUserPermission(Permission.FineLocation);}Debug.LogError("开始获取GPS信息");// 检查位置服务是否可用  if (!Input.location.isEnabledByUser){Debug.Log("位置服务不可用");yield break;}// 查询位置之前先开启位置服务Debug.Log("启动位置服务");Input.location.Start();// 等待服务初始化  int maxWait = 20;while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0){Debug.Log(Input.location.status.ToString() + ">>>" + maxWait.ToString());yield return new WaitForSeconds(1);maxWait--;}// 服务初始化超时  if (maxWait < 1){Debug.Log("服务初始化超时");yield break;}// 连接失败  if (Input.location.status == LocationServiceStatus.Failed){Debug.Log("无法确定设备位置");yield break;}else{Debug.Log("Location:  \n" +"纬度:" + Input.location.lastData.latitude + " \n" +"经度:" + Input.location.lastData.longitude + " \n" +"海拔:" + Input.location.lastData.altitude + " \n" +"水平精度:" + Input.location.lastData.horizontalAccuracy + " \n" +"垂直精度:" + Input.location.lastData.verticalAccuracy + " \n" +"时间戳:" + Input.location.lastData.timestamp);longitude = Input.location.lastData.longitude.ToString();latitude = Input.location.lastData.latitude.ToString();StartCoroutine(GetRequest("http://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + longitude + "," + latitude));}// 停止服务,如果没必要继续更新位置,(为了省电Input.location.Stop();}string key = "";       //去高德地图开发者申请IEnumerator GetRequest(string uri){using (UnityWebRequest webRequest = UnityWebRequest.Get(uri)){// Request and wait for the desired page.yield return webRequest.SendWebRequest();string[] pages = uri.Split('/');int page = pages.Length - 1;if (webRequest.isNetworkError){// Debug.Log(pages[page] + ": Error: " + webRequest.error);}else{JsonData jd = JsonMapper.ToObject(webRequest.downloadHandler.text);Debug.LogError("rn" + jd["regeocode"]["formatted_address"].ToString());}}}}
}

4.此时无论电脑,还是手机,都无法获得定位权限,在手机的应用权限中,甚至找不到应用!

Unity 在Unity端申请Android权限_unity android 权限-CSDN博客

具体的开启过程如下:权限是一劳永逸的,做做没坏处

第一步:

第二步:在新建的Assets\Plugins\Android目录下 ,增加对应的权限!

所有的24个权限Android 中的危险权限详细整理_Android_脚本之家 (jb51.net)

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

第三步:此时依旧无法申请,手机权限管理中找不到unity应用,同时发现unity是可以调用手机模拟器的,这下任务简单了太多太多。

第四步:在手机安装的时候确实有权限提示,但程序执行后感觉动态链接是失效的

 第五步:根据AI的回答,继续进行尝试吧,浪费时间了

第六步:此时other settings中API的等级情况如下图所示:

有已知

 大胆推测是最低版本设置过高!修改为:

改了以后还不行!

第七步:再加一个launcher  manifest,加了也不行

第八步:实测手机中已经开启了gps功能,也就是不会显示22。

但是27行的会出问题!

把start放到上面以后,任务顺利完成

 


http://www.ppmy.cn/news/1450532.html

相关文章

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…

Ubuntu Kylin创建桌面快捷方式【以Pycharm为例】

安装Pycharm专业版后想创建桌面快捷方式以方便访问而不用去调用命令访问&#xff08;安装Pycharm专业版教程请访问笔者的另一篇文章&#xff1a;http://t.csdnimg.cn/bRVHw&#xff09; 以Ubuntu Kylin 22.04系统为例&#xff0c;在此附上优麒麟官方新闻分享&#xff1a;干货分…

EMP.DLL是什么东西?游戏提示EMP.DLL文件缺失怎么解决

emp.dll文件是Windows操作系统中的一种动态链接库文件&#xff0c;它被设计为可以被多个程序共享使用的模块化文件。这种设计旨在提高系统效率&#xff0c;减少内存消耗&#xff0c;并简化软件的维护和更新。DLL文件通常包含了一系列相关的函数和变量&#xff0c;这些函数和变量…

docker 获取离线镜像包

docker 获取离线镜像包 1、问题背景2、问题分析 3、解决方法 1、问题背景 在内网服务器上因为不能访问互联网&#xff0c;不能使用docker pull命令拉取镜像包&#xff0c;怎么创建docker容器呢&#xff1f; 2、问题分析 在docker hub官网上没有提供下载镜像包的功能&#xf…

什么是网络安全等级保护测评(等保测评)?

什么是网络安全等级保护测评&#xff08;等保测评&#xff09;呢&#xff1f;今天永恒无限就为大家介绍下网络安全等级保护测评&#xff08;等保测评&#xff09; 网络安全等级保护测评&#xff08;等保测评&#xff09;是指对信息和信息系统按照重要性等级进行的保护测评。它…

深度学习的核心数学知识点

深度学习的数学知识点包括但不限于以下几个方面&#xff1a; 线性代数&#xff1a; 标量、向量、矩阵和张量&#xff1a;这些是线性代数的基础元素。标量是一个单独的数&#xff0c;向量是有序的数字列表&#xff0c;矩阵是二维数字网格&#xff0c;而张量则是更高维度的数据容…

【python】调整图像大小_自定义调整、等高宽调整

【python】调整图像大小_自定义调整、等高宽调整 【先赞后看养成习惯】求点赞+关注+收藏😀 文章目录 【python】调整图像大小_自定义调整、等高宽调整1、安装 Pillow 库:2、加载图像:3、使用 resize 方法调整图像大小:4、保持图像宽高比:5、保存调整大小后的图像:在Py…

项目管理-项目进度管理3/3

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 项目进度管理&#xff1a;需掌握 ITTO, 搞懂计算图&#xff0c;问题和解决方案。 项目进度管理6个过程&#xff0c;包括&#xff08;口…