具体来说,我正在使用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位置更新?相关推荐

  1. 使用带GPS模块的LTE Cat.4模组获取GPS定位信息

    上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...

  2. Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)

    文章说明:本文初衷是为了记录毕设学习过程,避免忘记操作流程.该功能是毕业设计的Android软件端的功能之一,本文将从获取百度地图密钥(AK)开始,详细地对地图定位配置和相关代码进行说明,文末将附上实 ...

  3. android自定义Dcloud插件,调用android原生界面并获取返回数据

    由于工作的需要,所以我接触到了Dcloud这个我不是很愿意接触的东西.Dcloud也是Webapp的一个工具,同样也可以用来做原生android的插件.比较一下Dcloud和Cordova的优缺点: ...

  4. 《教我兄弟学Android逆向03 破解第一个Android游戏 》

    上一篇 <教我兄弟学Android逆向02  破解第一个Android程序  >我带着你破解了我们自己编的一个小程序 里面我分析并讲解的一些smali语法你都记住了 给你布置的课后作业你发 ...

  5. GPS授时器(GPS卫星授时器)常用的同步方式

    GPS授时器(GPS卫星授时器)常用的同步方式 GPS授时器(GPS卫星授时器)常用的同步方式 GPS授时器是由安徽京准科技开发的一款高科技产品 卫星授时是通过导航卫星来进行发播或转播标准时间信号的授 ...

  6. Xamarin.Android提示找不到mono.Android.Support.v4

    Xamarin.Android提示找不到mono.Android.Support.v4 错误信息:Error: Exception while loading assemblies: System.I ...

  7. 【Xamarin开发 Android 系列 5】 Xamarin 的破解

    [Xamarin开发 Android 系列 5] Xamarin 的破解 原文:[Xamarin开发 Android 系列 5] Xamarin 的破解 有关这个话题,十分敏感,公司开发还是支持下商业 ...

  8. xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs

    Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...

  9. 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建

    Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客. ...

最新文章

  1. 你所知道的深度学习发展史及核心节点事件?
  2. 构建布局良好的windows程序
  3. scratch跳一跳游戏脚本_涂鸦骑士3D版强势屠榜,腾讯跳一跳“宝刀未老” | 休闲新游周报...
  4. PHP页面编码声明与用header或meta实现PHP页面编码的区别
  5. Linux下gcc编译器的使用
  6. 百度地图描绘轨迹html,百度地图API 绘制轨迹历史
  7. android4.2 音频模块启动分析,Android 音频模块学习小结
  8. ssis合并连接链接键_在SSIS包中使用合并联接转换
  9. ecplise tomcat忽然出现404
  10. java反编译jar包并修改class文件重新打包
  11. 个人 易混淆 高频 高级单词
  12. Cadence PSpice 模型5:基于ABM库创建XC6209稳压芯片的PSpice模型实战图文教程
  13. Real Estate Photography: Exterior at Twilight 房地产摄影:暮光之城 Lynda课程中文字幕
  14. linux c 读取.bin文件
  15. mysql informix_INFORMIX数据库函数
  16. watch的immediate使用
  17. Facebook多账号运营如何防关联
  18. bzip2格式文件解压
  19. 移动魔百盒CM201-2(emmc和nand)-分省模式-免拆机-强刷包及教程
  20. Exercise11-Matplotlib

热门文章

  1. 免费的午餐——编程利用Google日历API发短信、Email
  2. sql server数据库添加 mdf数据库文件,遇到的报错
  3. 2022年上海市徐汇区创新型中小企业名单公示
  4. win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
  5. 小白聊智慧制造之四:智慧制造的智慧特性
  6. 关于SIFT特征点检测与黑塞矩阵的读书笔记
  7. 各种数据集总结 图像数据集 语音数据集
  8. 微信公众号如何接入微信机器人
  9. eclipse代码检查工具-FindBugs介绍
  10. 【chatGPT】01 数组、二维数组在不同语言中的存储方式