问题标签 [xamarin.essentials]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3502 浏览

c# - C# , Xamarin.Essentials 安全存储

在查看了有关保存 JWT 令牌的选项后,我选择了 Xamarin.Essentials 安全存储。

问题是我的应用程序在尝试将令牌保存在存储中时总是中断并出现以下错误:

“已抛出 System.AggregateException”

详情如下:

“Xamarin.Essentials.NotImplementedInReferenceAssemblyException

此程序集的可移植版本中未实现此功能。您应该从您的主应用程序项目中引用 NuGet 包,以便引用特定于平台的实现。”

这显然意味着安装 nuget 包时出了点问题,所以我:

  • 卸载并重新安装 xamarin.essentials 包。
  • 将 .Netstandard 升级到 2.0,认为 1.6 不兼容。
  • 检查是否在 csproj 文件中引用了包。

以此类推,什么都没有。

现在,我有一个带有以下代码行的 TokenStorageController:

从中调用控制器的 RestService 类如下所示:

这是发生错误的确切行:

如果没有解决方案,我将删除所有软件包并重新安装它们。逐个!我发誓我会做到的!如果根本没有解决方案,我会将令牌存储在 SQL 中,因为我已经有一个控制器来执行此操作。

我是 Xamarin 和 C# 菜鸟,所以请多多包涵。

仅供参考:我使用 macOS 客户端进行测试,原因可能是 SecureStorage 不适用于 macOS 应用程序。

谢谢!

0 投票
0 回答
950 浏览

xamarin - 如何使用 Xamarin Essentials 获取蓝牙连接状态

我正在尝试在 Xamarin.Forms 项目中使用 Xamarin Essentials Connectivity 类来检查蓝牙是否可用:

但是,在调试时(在实际的 iPhone 和 Android 设备上),我从未在 networkProfiles 列表中看到蓝牙配置文件,无论蓝牙是打开但未配对、打开并配对还是关闭。

但是,当连接 wifi 时,我可以看到 wifi 配置文件。

任何帮助表示赞赏。

0 投票
1 回答
7185 浏览

android - 如何在 Xamarin Forms 中获取设备的 GPS 位置?

当名为entLocation的输入框处于焦点时,我想获取设备的经度和纬度。我正在使用Xamarin.Essential Geolocation获取设备的 GPS 位置,我按照文档和教程进行操作,但仍然无法获取 GPS 位置。我已经在我的 android 清单下面添加了权限,但仍然没有。我在“Error3”上收到显示警报,Error3是Unable to get location时的异常。

错误是“ Java.Lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.app.Activity.requestPermissions(java.lang.String[],int)'



我的问题:
1. 我的代码有什么错误?
2.我可以离线获取我的gps位置吗?如果是,我该如何实现?

使用权限 android:name="android.permission.ACCESS_COARSE_LOCATION"
使用权限 android:name="android.permission.ACCESS_FINE_LOCATION"
使用功能 android:name="android.hardware.location" android:required="false"
使用-feature android:name="android.hardware.location.gps" android:required="false"
使用-feature android:name="android.hardware.location.network" android:required="false"

0 投票
1 回答
1765 浏览

xamarin - 检测连接更改 Xamarin 表单

目前我正在使用Xamarin.Essentials.Connectivity来检查我的互联网连接。我正在使用下面的代码在进行交易之前检查是否有互联网。如何检查我的表单中的 Internet 连接是否发生变化?例如,我有两 (2) 个表单登录表单主菜单,无论我当前处于何种表单,当我打开设备的 Wifi 时,它都会显示一条警报,提示我没有互联网连接。我怎样才能做到这一点?

我尝试使用 Xamarin.Essentials.Connectivity 文档中的此代码,但我不知道如何使用它以及将其放在哪里

我的同步代码

0 投票
2 回答
9964 浏览

c# - Xamarin Essentials 地理定位不起作用,GetLocationAsync 中断尝试

所以我想获取用户的位置并对其进行反向地理编码以获取地址和门牌号。

因此,我安装了预发布的包 Xamarin.Essentials。我想使用地理定位和地理编码 API,所以我写了一些代码,但代码if (location != null)在 GetCurrentLocation 的尝试中从未到达。

根据 Xam.Plugin.Geolocator 作者 James Montemagno 所说,我认为 Xamarin.Essentials 处于预发布状态并不重要:

我将继续工作和维护我的插件,但我建议您检查 Xamarin.Essentials 以查看它是否非常适合您的应用程序,因为它一直适用于我的所有应用程序!

来源:https ://github.com/jamesmontemagno/GeolocatorPlugin

我做了什么?

我已经搜索了有关我遇到的问题的 StackOverflow 问题,但据我所知,我找不到可以帮助我的问题。

我看过的问题:

我也尝试过添加超时是否可行:var request = new GeolocationRequest(GeolocationAccuracy.Medium, timeout: TimeSpan.MaxValue );

但是我在这个位置上也遇到了同样的问题。它从未到达 if 语句。

我的代码:

FillInLocationInForm();在我的 Page 构造函数中设置。

public Location location;public Placemark placemark;在 Page 类中设置。

这些是 Page 类中的相关函数:

我还将这些权限添加到我的应用程序 AndroidManifest 并在运行时请求它们。我已经在我的应用设置中看到了位置和存储都被选中。:

我正在关注的文档:

任何帮助表示赞赏。

编辑:

我有一种预感,我需要向 中添加一个取消令牌GetLocationAsync,但我还不知道怎么做。我在 GeolocationRequest 旁边看不到它:

在此处输入图像描述

编辑2:

我添加了 CancellationToken,但仍然没有到达 if 语句。也许我还没有正确使用它。

编辑3:

下图中的断点永远不会触发,这意味着永远不会到达 if 语句。不知何故,代码退出了尝试,但没有进入其中一个 catch 语句。Console.WriteLine()我现在在我的 catch 语句中使用 a 。我在设备日志中看不到任何内容。我测试了Console.WriteLine()我在设备日志中看到的问题。 在此处输入图像描述

0 投票
1 回答
224 浏览

xamarin.forms - 无法将 Xamarin.Essentials 包添加到项目

处理后我无法通过 管理 NuGet 包将 Xamarin.Essentials 包添加到我的跨平台项目中,它显示以下错误:

在此处输入图像描述

0 投票
1 回答
2509 浏览

xamarin.forms - 需要一种方法在 Android 和 iOS 上的 Xamarin Forms 中持续跟踪用户的当前位置

我正在为学校开展一个高级项目,该项目要求我通过手机GPS坐标持续跟踪用户。我的最终目标是不断Mapsui用当前用户的位置更新我的地图。我在如何不断将数据更新为Mapsui. 如果我输入静态GPS坐标,该点会正确显示在我的地图上。

确实,让我感到困惑的核心问题是异步函数以及如何在使用Xamarin.Essentials.

任何想法或提示将不胜感激!

0 投票
1 回答
1229 浏览

c# - Xamarin 方向传感器四元数

我正在尝试确定一个 3d 矢量来Vector3表示我的手机方向而没有角度。我正在寻找的是像射线一样从手机背面发出的向量,基本上是手机的法线向量。

我知道四元数给了我一个转变,但是到什么?

此外,我发现Quaternion.ToAxisAngle()将四元数转换为轴及其各自的滚动角。我想,太好了,这就是我需要的,我可以忽略角度。

当手机放在桌子上时,我得到以下轴:

而角度基本上代表了指南针的角度。在那种特殊情况下,这就是我所期望的。但是当手机具有不同的任意空间位置时,轴似乎不再是手机的法线向量。

如何计算手机平面的法线向量?

0 投票
1 回答
262 浏览

c# - Xamarin Reactive Observable Throttling 不起作用

我想节流方向传感器Xamarin.Essential如下:

处理程序方法具有以下签名:

如果我省略该Throttle方法,一切都会很好。在Throttle那里,没有任何东西会着火。

0 投票
0 回答
542 浏览

c# - Xamarin 方向传感器矢量角

Xamarin.Essentials.OrientationSensor在我的项目中使用,我无法解释QuaternionAPI 给我的新读数。

问题描述

这是描述我的问题的图: 方向向量

我需要确定一个v与手机平面垂直/正交的方向向量(即从手机背面出来的向量)。然后,我需要将此向量转换v为 3D 状态空间,即(latitude, longitude, height)。这将使我能够计算手机的方向和d到某个固定点的距离矢量之间的角度F,其中d = F - P。然后可以通过使用点积、余弦以及 和 的大小来获得v角度d

到目前为止我所拥有的

根据官方文档,手机的本地坐标系描述如下:

设备(通常是手机或平板电脑)具有 3D 坐标系,具有以下轴: 正 X 轴在纵向模式下指向显示器的右侧。在纵向模式下,正 Y 轴指向设备的顶部。正 Z 轴指向屏幕外。

这意味着v我正在寻找的向量将是手机本地坐标系中的v=(0,0,-1)

这个问题中,我已经了解到,给定的四元数是相对的,我需要一个参考四元数centerQ来进行转换:

然后我可以Quaternion.Transform(v, centerQ)用来转换v成地球坐标系,根据文档定义为

地球的 3D 坐标系具有以下轴: 正 X 轴与地球表面相切并指向东方。正 Y 轴也与地球表面相切并指向北方。正 Z 轴垂直于地球表面并指向上方。

但是,我需要转换v为 WGS+高度,这就是它变得棘手的地方。

我尝试定义两个额外的四元数,用于从地球坐标系(如文档中所述)到 WGS 的转换,如下所示:

因为纬度基本上是分别绕 x 轴和经度绕 y 轴旋转。

然后我将不得不乘以三个四元centerQqLatqLon。但是,我已经尝试了三者之间所有可能的顺序组合,结果都没有任何意义。我知道四元数乘法不是可交换的。

到目前为止,这是我的代码

我将不胜感激有关此问题的任何提示或想法。