问题标签 [android-gnss]
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.
android - 使用原始 GNSS 测量可能会增加采样率吗?
我正在寻找使用安卓手机增加位置采样率的方法。以前在 SO 大约每年一次询问如何获得更高的采样率。
但我的问题更具体。如果我使用原始数据并自己计算位置,通过使用新的原始 GNSS 测量是否可以获得更高的采样率?
也许我误解了原始 GNSS 数据的意义,但在我的无知中,我认为像 Pixel 2 这样支持 GPS、GLONASS、GALILEO、北斗和 QZSS 数据的手机理论上应该比 1Hz 更频繁地获取数据. 但它自己的芯片仅以 1Hz 的采样率计算位置并将其发送到系统。
但是由于有来自五个定位系统的原始数据,因此应该不仅可以获得更高的采样率而且还可以获得更高的准确性!?!?!?
所以我的问题是,使用原始数据是否有可能获得更高的采样率和更好的准确性?阅读上面的页面并没有太多建议,原始定位数据不是我的专长。
gps - 经度/纬度信息是否直接来自 Android 设备上的 GNSS 芯片?
我正在尝试直接与设备上的 GNSS 芯片通信,但我不清楚RAW GNSS信息是否直接来自 GNSS 芯片。我已经使用了链接中提供的应用程序,它似乎可以读取经度/纬度信息。
这些信息是直接来自 GNSS 芯片吗?此外,GNSS 驱动程序是否足以提取此信息?还是根据 GNSS 原始数据计算的经度/纬度信息?如果是后者,我如何从原始 GNSS 计算经度/纬度(参考就足够了)?
注意:我对非常高精度的位置不感兴趣,也不对室内位置检索(使用 Wi-Fi 和运营商服务)感兴趣。我想记录 GPS(或 Glonass 或其他)并将其保存为经度/纬度格式。
android - 如何在没有 GPS_PROVIDER 的情况下模拟位置并在 Android 中启用 GNSS 测量监听器
我写了一个应用程序,它可以使用获取 GNSS 原始测量数据
该应用程序可以处理这些数据并计算新的位置。现在,我想将这个计算出的位置模拟到 Android 操作系统中,以便其他应用程序可以使用这个位置。为了实现这一点,我可以给应用程序位置模拟权限,将其添加到开发人员选项中的位置模拟应用程序列表中并使用类似的方法
首先,我需要决定要模拟的位置提供程序。PASSIVE_PROVIDER 不允许被嘲笑。NETWORK_PROVIDER 可以模拟,但用户必须在系统设置中选择此定位方法。如果他这样做,系统将停止向任何注册了这些回调的应用程序发送 GNSS 测量回调,因此无法再计算位置。在这种情况下,将调用具有状态更改“GNSS 测量侦听器已禁用”的回调。当我尝试模拟 GPS_PROVIDER 时也会发生同样的事情(只要 setTestProviderEnabled() 被调用)。所以我想到了嘲笑融合的位置提供者。由于我的 Android Studio 链接器无法解析 LocationManager.FUSED_PROVIDER(不知道为什么),我直接使用字符串“fused”并尝试模拟位置。没有异常出现,仍然可以接收到 gnss 原始测量值。但是,在 GoogleMaps 上,我只能看到内部芯片提供的本地位置。无论在系统中选择“仅 GPS”还是“最佳”定位方法都是如此。
那么,我该如何解决呢?有什么方法可以模拟 GPS_PROVIDER 而不会在我模拟它时中断原始 gnss 测量或阻止将 gnss 芯片位置应用于融合的提供者?
顺便说一句,我的代码如下所示:
java - 如何从通过 Google GNSSLogger 获取的参数计算伪距?
通过 GNSS 记录器应用程序获取的官方 GNSS 原始测量值提供以下参数:
我正在PR
从上述数据中寻找原始伪距测量值。一点帮助?
参考1:https ://github.com/google/gps-measurement-tools
参考2:https ://developer.android.com/guide/topics/sensors/gnss
geolocation - 在 NativeScript 应用程序中获取额外的地理位置数据 (GnssStatus)
在我的 NativeScript 应用程序中,我需要获取nativescript-geolocation 插件未提供的其他地理位置信息,例如卫星计数或卫星 ID 。
我正在尝试在 NativeScript 应用程序中使用来自 android.location 的 GnssStatus 类,其中包含以下内容:
之后我得到一个错误:
ERROR Error: JNI Exception occurred (SIGABRT)
我究竟做错了什么?或者有没有其他方法可以获取该信息?
java - android api类的访问字段
有没有办法访问像 GnssMeasurements 这样的 android api 类的字段来设置值。在这个类中已经存在公共设置方法,但它们有一个@TestApi注释。我不知道如何访问这些方法或如何设置私有字段
我尝试通过以下方式访问私有字段:
在这里,我得到了以下堆栈跟踪:
我也尝试访问这些方法:
这给了我这个错误:
有没有办法访问这些字段?
android - requestLocationUpdates(例如 10 000 毫秒)不影响 GnssMeasurementEvent.CallBack onGnssMeasurementsReceived() 更新间隔
背景
我正在进行一项研究,涉及开发一个收集 GNSS 测量值和 NMEA 语句的 Android 应用程序。
细节
我已成功接收和注销 GNSS 和 NMEA 数据。它似乎每秒钟更新一次。但现在我试图让它们每 60 秒更新一次,通过使用requestLocationUpdates
60000minTime
和minDistance
1000 或 10000 米,这样它只会因为minTime
.
问题
NMEA 的更新似乎有效,因为它对某些类型的 NMEA 句子更新大约 60 秒。但是,GNSS 测量值会继续每秒钟或更短时间更新一次。我尝试过使用不同的值以及改变我的初始化方式GnssMeasurementsEvent.Callback
,但这些都没有帮助。希望有更多见识的人可以帮助我解决这个问题。
相关代码
javascript - 如何使用 javascript 获取原始 gnss 数据?
我正在为室内导航系统开发一个网络应用程序。为此,我尝试了地理定位 api 来获取 gps。它没有像我想要的那样准确地给出纬度和经度(即使启用了高精度)。我了解到通过使用 gnss 我们可以达到几厘米的精度。我使用应用程序验证了这一点,这是真的。我知道我们可以使用 javascript 获取 gps、加速度计等数据。有没有办法纯粹通过使用 javascript/html 来获取 gnss 数据?
android-gps - android locationManager的getLastLocation是否使用GnssAntennaInfo?
我是一名安卓开发者。从Android 11开始,增加了可以利用双频GNSS的GnssAntennaInfo类,已经确认开发者可以使用。如果是这样,谷歌位置api提供的locationManager的getLastLocation方法中是否已经使用了GnssAntennaInfo?或者开发人员是否仍然需要利用提供的 GnssAntennaInfo 来提高定位精度?
android - java.lang.NoClassDefFoundError 使用 android.location.GnssAntennaInfo
我正在尝试运行 GnssAntennaInfo。在模拟器上一切正常。在真实设备(sdk 27)上测试时,应用程序崩溃并出现以下错误:
GNSSTest.kt 如下:
这次崩溃的原因是什么?如何修复?