xamarin android gps,如何使用Xamarin在Android中同步获取GPS位置更新?
具体来说,我正在使用Xamarin.Forms进行C#开发,但是在本机Android方面工作,编写了GPS包装类,该类可以通过依赖注入在Xamarin.Forms方面使用.在大多数情况下,关于Android,C#和Java之间的调用应该相同.
本质上,我在Android端的Geolocator对象(实现ILocationListener)中具有此方法:
public async Task> GetGPSData() {
gpsData = null;
var success = false;
var error = string.Empty;
if (!manager.IsProviderEnabled(LocationManager.GpsProvider)) {
//request permission or location services enabling
//set error
} else {
manager.RequestSingleUpdate(LocationManager.GpsProvider, this, null);
success = true;
}
return new Tuple(success, error, gpsData);
}
和
public void OnLocationChanged(Location location) {
gpsData = new GPSData(location.Latitude, location.Longitude);
}
我希望能够调用GetGPSData并让它返回元组,目前关于元组的唯一重要的事情是gpsData已被填充.我知道找到修复方法可能需要几秒钟,因此我希望此方法是异步的一旦我真正需要该值,就可以在Xamarin.Forms端等待.
我的问题是我想不出一种方法来让manager.RequestSingleUpdate同步工作或进行其他工作.您调用该方法,然后最终触发OnLocationChanged.我试图投掷令人作呕的野蛮人
while (gpsData == null);
在强制它在OnLocationChanged被触发之前不要继续进行的调用之后,但是当我将该行放入时,永远不会调用OnLocationChanged.我假设这是因为OnLocationChanged是在同一线程而不是后台线程上调用的.
我有什么办法可以采取这种情况,并在OnLocationChanged触发之前不返回GetGPSData?
谢谢
编辑:要添加,此方法将不会定期调用.它是自发的,很少见,所以我不想使用RequestLocationUpdates,获取常规更新并返回最新的更新,因为这将需要始终打开GPS,而不必要地给电池下雨.
xamarin android gps,如何使用Xamarin在Android中同步获取GPS位置更新?相关推荐
- 使用带GPS模块的LTE Cat.4模组获取GPS定位信息
上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...
- Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)
文章说明:本文初衷是为了记录毕设学习过程,避免忘记操作流程.该功能是毕业设计的Android软件端的功能之一,本文将从获取百度地图密钥(AK)开始,详细地对地图定位配置和相关代码进行说明,文末将附上实 ...
- android自定义Dcloud插件,调用android原生界面并获取返回数据
由于工作的需要,所以我接触到了Dcloud这个我不是很愿意接触的东西.Dcloud也是Webapp的一个工具,同样也可以用来做原生android的插件.比较一下Dcloud和Cordova的优缺点: ...
- 《教我兄弟学Android逆向03 破解第一个Android游戏 》
上一篇 <教我兄弟学Android逆向02 破解第一个Android程序 >我带着你破解了我们自己编的一个小程序 里面我分析并讲解的一些smali语法你都记住了 给你布置的课后作业你发 ...
- GPS授时器(GPS卫星授时器)常用的同步方式
GPS授时器(GPS卫星授时器)常用的同步方式 GPS授时器(GPS卫星授时器)常用的同步方式 GPS授时器是由安徽京准科技开发的一款高科技产品 卫星授时是通过导航卫星来进行发播或转播标准时间信号的授 ...
- Xamarin.Android提示找不到mono.Android.Support.v4
Xamarin.Android提示找不到mono.Android.Support.v4 错误信息:Error: Exception while loading assemblies: System.I ...
- 【Xamarin开发 Android 系列 5】 Xamarin 的破解
[Xamarin开发 Android 系列 5] Xamarin 的破解 原文:[Xamarin开发 Android 系列 5] Xamarin 的破解 有关这个话题,十分敏感,公司开发还是支持下商业 ...
- xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs
Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客. ...
最新文章
- 你所知道的深度学习发展史及核心节点事件?
- 构建布局良好的windows程序
- scratch跳一跳游戏脚本_涂鸦骑士3D版强势屠榜,腾讯跳一跳“宝刀未老” | 休闲新游周报...
- PHP页面编码声明与用header或meta实现PHP页面编码的区别
- Linux下gcc编译器的使用
- 百度地图描绘轨迹html,百度地图API 绘制轨迹历史
- android4.2 音频模块启动分析,Android 音频模块学习小结
- ssis合并连接链接键_在SSIS包中使用合并联接转换
- ecplise tomcat忽然出现404
- java反编译jar包并修改class文件重新打包
- 个人 易混淆 高频 高级单词
- Cadence PSpice 模型5:基于ABM库创建XC6209稳压芯片的PSpice模型实战图文教程
- Real Estate Photography: Exterior at Twilight 房地产摄影:暮光之城 Lynda课程中文字幕
- linux c 读取.bin文件
- mysql informix_INFORMIX数据库函数
- watch的immediate使用
- Facebook多账号运营如何防关联
- bzip2格式文件解压
- 移动魔百盒CM201-2(emmc和nand)-分省模式-免拆机-强刷包及教程
- Exercise11-Matplotlib
热门文章
- 免费的午餐——编程利用Google日历API发短信、Email
- sql server数据库添加 mdf数据库文件,遇到的报错
- 2022年上海市徐汇区创新型中小企业名单公示
- win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
- 小白聊智慧制造之四:智慧制造的智慧特性
- 关于SIFT特征点检测与黑塞矩阵的读书笔记
- 各种数据集总结 图像数据集 语音数据集
- 微信公众号如何接入微信机器人
- eclipse代码检查工具-FindBugs介绍
- 【chatGPT】01 数组、二维数组在不同语言中的存储方式