gpt4 book ai didi

android - Nativescript 中原生传感器的可访问性

转载 作者:行者123 更新时间:2023-11-28 19:26:46 24 4
gpt4 key购买 nike

我决定选择在 Nativescript(跨平台 IOS/Android)中实现一个应用程序,或者相应地使用 java/swift 做一个“真正的”本地应用程序。

抛开明显的 1 个代码库与 2 个代码库的讨论,我不确定 Nativescript 的局限性(如果有的话)。

主要问题在于该应用对传感器数据的大量需求。我必须在应用程序中使用很多手机传感器。像 android sensors 这样的传感器.

我主要了解 Nativescript 的功能。但问题是,考虑到应用对原生传感器数据的大量需求,选择 Nativescript 是否会影响传感器的可访问性或整体性能?

我找到了几个插件(例如 accelerometer plugin ),我担心每个传感器都需要一个插件,并且可能某些传感器缺少插件。这应该引起关注吗?

最佳答案

访问任何传感器都没有限制。正如您提到的,有加速度计插件,还有其他一些插件。但是,根据传感器的不同,您可能必须将一些逻辑写入那些 API,如果您考虑使用 java/swift 😁,这应该不会太具有挑战性。 Here这是我最近在做的事情,我需要在 WearOS 应用程序上使用心率传感器,目前这不是一个生产项目,但计划最终发布。

正如在对 OP 的评论中提到的:您最终将使用传感器监听器来访问 onSensorChanged 事件中返回的数据。

以下代码是如何访问设备上的心率传感器。

首先,获取设备传感器管理器:

从 NS 导入/需要 application 模块,以便您可以访问下面示例中的 Android Activity

从“tns-core-modules/application”导入 * 作为应用程序;

  const activity: android.app.Activity =
application.android.startActivity ||
application.android.foregroundActivity;
const mSensorManager = activity.getSystemService(
android.content.Context.SENSOR_SERVICE
) as android.hardware.SensorManager;

然后创建我们的监听器:

const myHrListener = new android.hardware.SensorEventListener({
onAccuracyChanged: (sensor, accuracy) => {},
onSensorChanged: event => {
console.log(event.values[0]);
const HR = event.values[0].toString().split('.')[0];
// HR is the BPM from the sensor here
}
});

然后我们需要获取传感器:

const mHeartRateSensor = mSensorManager.getDefaultSensor(
android.hardware.Sensor.TYPE_HEART_RATE
);

最后,我们注册监听器:

const didRegListener = mSensorManager.registerListener(
myHrListener,
mHeartRateSensor,
android.hardware.SensorManager.SENSOR_DELAY_NORMAL
);

registerListener 方法返回一个 bool 值,因此您可以检查返回的 bool 值是否为 true,这意味着监听器已成功注册,您将在传感器在 onSensorChanged 事件中提供它。

关于android - Nativescript 中原生传感器的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com