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

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.mzph.cn/pingmian/5949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++基础学习]----03-程序流程结构之跳转语句详解

前言 在C程序中&#xff0c;跳转语句break和continue是两种用于控制程序流程的关键字&#xff0c;常用于循环语句&#xff08;如for循环、while循环&#xff09;中。 正文 01-简介 1、break关键字&#xff1a; 当程序执行到break语句时&#xff0c;会立即跳出当前所在的循环&…

C#知识|汇总方法重载与静态方法应用技巧

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 今天学习C#方法重载与静态方法应用技巧的相关内容。 01 方法重载有什么好处&#xff1f; 1.1、可以有效的减少类的对外接口&#xff08;只显示一个方法比较简洁&#xff09;&#xff0c;从而降低类的复杂度。 1.2、方便…

【Vue 2.x】学习vue之二组件

文章目录 Vue二组件第五章es6文件导入出1、导出export 组件&#xff08;component&#xff09;1、定义2、模块化与组件化3、组件的分类1、非单文件组件非单文件三步骤创建组件标准写法简化写法组件的嵌套非单文件的不足之处 2、单文件组件vue单文件组件的使用脚手架创建项目重点…

C++@vscode配置C++开发环境常见问题和实践经验

文章目录 abstractvscode配置C/C开发环境常见问题 FAQC/C共用一组tasks.json/launch.json文件?关于配置文件中的注释更快地编译运行调试时调用外部终端控制台二次编译失败问题编译多个源文件&#x1f60a;源文件组织 编译出的可执行文件名中文乱码&#x1f60a;修改tasks.json…

Django框架之视图层

一、三板斧的原理介绍 1、HttpResponse 在Django中&#xff0c;HttpResponse是一个类&#xff0c;用于构建HTTP响应并返回给客户端。当视图函数处理完请求后&#xff0c;需要返回一个响应时&#xff0c;就会使用HttpResponse对象。 &#xff08;1&#xff09;创建HttpRespon…

C语言随笔集

注意 strlen 和 sizeof 的区别 strlen计算的是第一个 ‘\0’ 前面的字符的个数sizeof计算的是占用的内存空间的大小只和定义时有关C语言中,输出double类型(双精度)和float(单精度)时, 编译器默认精确到小数点后六位输出 默认输出的是6位小数,不足6位,以0补齐,超过6位按…

leetcode1329--将矩阵按对角线排序

1. 题意 对角线排序 2. 题解 2.1 直接模拟 跟螺旋输出数组实际上有点像&#xff0c;这里需要枚举对角线数组的起始值。 class Solution { public:void sort_dia(int br, int bc, vector<vector<int>> &mat) {vector<int> tmp;int r mat.size();int…

Java解决除自身以外数组的乘积

Java解决除自身以外数组的乘积 01 题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 **不要…

数据库的嵌套查询(子查询),分组查询和统计查询—学生选课

学生选课数据库中的表的结构参考学生选课数据库的定义和维护 1.嵌套查询 1.1查询选修了数据库原理与应用课程的学生学号和姓名 SELECT sno 学号, sname 姓名 FROM student WHERE sno IN(SELECT snoFROM SCINNER JOIN Course c ON c.cno SC.cno AND c.cname 数据库原理与应…

qml之text

显示字体 Text {text: "The quick brown fox"color: "#303030"font.family: "Ubuntu"font.pixelSize: 28x:200y:200}Text {width:84elide: Text.ElideMiddle y:text1.ytext1.height20text: "一个很长很长的句子 !!!!!!!!!!"style…

全新神经网络架构KAN一夜爆火!200参数顶30万,MIT华人一作 | 最新快讯

白交衡宇发自凹非寺 量子位公众号 QbitAI 一种全新的神经网络架构 KAN&#xff0c;诞生了&#xff01; 与传统的 MLP 架构截然不同&#xff0c;且能用更少的参数在数学、物理问题上取得更高精度。 比如&#xff0c;200 个参数的 KANs&#xff0c;就能复现 DeepMind 用 30 万参数…

Linux 进程间通信之匿名管道

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux知识分享⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; 目录 前言 一. 进程间通信介绍 1.进程间通…

C#知识|WinForm项目结构Partial部分类与窗体控件介绍

哈喽,你好啊,我是雷工! 在我国上位机开发,医院里的HIS开发、ERP开发、很多二次开发、GIS开发等,相当一部分都是由C#开发的。 目前很多企业应用是C/S+B/S架构,WinForm作为经典的框架,还是很有必要学习的,特别是对于初学者比较友好。 要想学好WinForm需要着重以下几个方面…

遍历JavaScript对象(字典)

在JavaScript中&#xff0c;对象通常被用来作为字典使用&#xff0c;因为它们是由键值对组成的。当我们需要遍历这些键值对时&#xff0c;有几种常用的方法。 使用for...in循环 for...in循环是JavaScript中用于遍历对象属性的常用方式。它会遍历对象所有可枚举的属性&#xf…

【linuxC语言】stat函数

文章目录 前言一、stat函数二、示例代码总结 前言 在Linux系统编程中&#xff0c;stat() 函数是一个非常重要的工具&#xff0c;用于获取文件的元数据信息。无论是在系统管理、文件处理还是应用开发中&#xff0c;都可能会用到 stat() 函数。通过调用 stat() 函数&#xff0c;…

AI视频教程下载:用ChatGPT提示词开发AI应用和GPTs

在这个课程中&#xff0c;你将深入ChatGPT的迷人世界&#xff0c;学习如何利用其能力构建创新和有影响力的工具。你将发现如何创建不仅吸引而且保持用户参与度的应用程序&#xff0c;将流量驱动到你的网站&#xff0c;并开辟新的货币化途径。 **课程的主要特点&#xff1a;** …

Hive优化以及相关参数设置

1.表层面设计优化 1.1 表分区 分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹&#xff0c;该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录&#xff0c;把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要…

抖音小店运营实战班,全新升级 从零到进阶精通 分享月销百万小店核心秘密

课程内容&#xff1a; 1 2024抖音电商发展趋势及抖店运营策略(直播2024 0412).mp4 2 1-1抖音小店入驻流程(直播2024 04 12),mp4 3 1-2个体店铺VS企业店铺有什么区别(直播20240412).mp4 4 1-3抖音小店店铺搭建(直播2024 04 12).mp4 5 2-1-如何避免违禁词(附违禁词大全)(直播…

微软如何打造数字零售力航母系列科普07 - Azure PlayFab:你从未想过的世界上最大的开发工具(平台)

Azure PlayFab&#xff1a;你从未想过的世界上最大的开发工具 微软的James Gwertzman告诉GamesIndustry.biz Academy他帮助开发者成功的使命 制作游戏比以往任何时候都更容易上手。现在有无数的游戏引擎可供选择&#xff0c;其中大多数是免费的&#xff0c;PC空间的店面也同样重…

链表经典面试题上

目录 创作不易&#xff0c;如若对您有帮助&#xff0c;还望三连&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 题目一&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 题目二&#xff1a;206. 反转链表 - 力扣&#xff08;LeetCode&#xff…