Не будет ограничений для доступа к любому из датчиков. Как вы упомянули, есть плагин акселерометра и есть несколько других. Однако, в зависимости от датчика, вам, возможно, придется написать часть своей логики для этих API, что не должно быть слишком сложным, если вы собираетесь использовать java / swift ?. Здесь - это то, над чем я недавно работал, когда мне понадобился датчик сердечного ритма в приложении WearOS, на данный момент это не производственный проект, но его планируется выпустить в конце концов.
Как упомянуто в комментариях к OP: в конечном итоге вы будете использовать Sensor Listener для доступа к данным, которые возвращаются в событии onSensorChanged
.
Следующий код показывает, как получить доступ к датчику сердечного ритма на устройстве.
Сначала получите диспетчер датчиков устройства:
Импортируйте / требуйте модуль application
из NS, чтобы вы могли получить доступ к активности Android в следующем примере
import * as application from '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
возвращает логическое значение, так что вы можете проверить, является ли возвращенное логическое значение true
, что означает, что слушатель успешно зарегистрировался, и вы получите данные, когда датчик предоставит их в событии onSensorChanged
.