▲ 重力迷宫桌面版画面(高清版) 初始化 Accelerometer Accelerometer 在 Windows.Devices.Sensors 命名空间下,使用时需要在类顶部加上 using。 1 using Windows.Devices.Sensors; 而获得加速度计的实例只需要一句话: 1 _accelerometer = Accelerometer.GetDefault(); 如果设备上没有加速度计 现在,我们对加速度计进行一些简单的初始化: 1 2 3 4 5 6 7 8 9 10 11 _accelerometer = Accelerometer.GetDefault(); if (_accelerometer _accelerometer.ReadingChanged += Accelerometer_ReadingChanged; } 得到 Accelerometer 的读数 在监听事件的 Accelerometer_ReadingChanged : https://blog.walterlv.com/post/uwp-accelerometer.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
添加插件 $ cordova plugin addcordova-plugin-device-motion 图 12如上则插入成功 插件的使用 Methods navigator.accelerometer.getCurrentAcceleration navigator.accelerometer.watchAcceleration navigator.accelerometer.clearWatch 2. Example var watchID; function getCurrentAcceleration() { navigator.accelerometer.getCurrentAcceleration watchACC() { var options = { frequency: 3000 }; // Update every 3 seconds watchID = navigator.accelerometer.watchAcceleration (onSuccess, onError, options); } function clearWa() { navigator.accelerometer.clearWatch(watchID)
Sensor Tag内部包含了6种传感器:IR temperature Sensor, Humidity Sensor, Pressure Sensor, Accelerometer, Gyroscope 图5 第三步,在需要使用Sensor Tag的页面后台文件中,实例化相应的传感器,以加速度传感器为例: Accelerometer accelerometer = new Accelerometer() await accelerometer.EnableSensor(); await accelerometer.DisableSensor(); 使用EnableNotifications() 和 DisableNotification ()来允许或者禁止数据通知: private async void Notify() { await accelerometer.DisableNotifications(); await accelerometer.EnableNotifications (); accelerometer.SensorValueChanged += accelerometer_SensorValueChanged; } void accelerometer_SensorValueChanged
" } ] Stage "requestPermissions": [ { "name": "ohos.permission.ACCELEROMETER" } ] 接下来我们就来看一下传感器类型 系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.Sensor 名称 默认值 说明 SENSOR_TYPE_ID_ACCELEROMETER 1 加速度传感器。 SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED 281 未校准加速度计传感器。 Response 传感器数据的时间戳。 sensor.on ACCELEROMETER on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: Callback,options 是 要订阅的加速度传感器类型为SENSOR_TYPE_ID_ACCELEROMETER。
会自动降低亮度让屏幕显得不是那么刺眼 打电话时, 人脸贴近iPhone屏幕时, 屏幕会自动锁屏, 达到省电的目的 3.传感器的类型 iPhone5中内置的传感器有 运动传感器\加速度传感器\加速计(Motion/Accelerometer CoreMotion.framework 虽然UIAccelerometer已经过期,但由于其用法极其简单,很多程序里面都还有残留 加速计--UIAccelerometer的使用步骤 // 获得单例对象 UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer]; // 设置代理 accelerometer.delegate = self; // 设置采样间隔 accelerometer.updateInterval = 1.0/30.0; // 1秒钟采样30次 // 实现代理方法 - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate
这个问题源于中文技术论坛上的一个帖子:关于Accelerometer中CurrentValueChanged事件兼容性问题。 分析 从《MSDN:Accelerometer Class》网页上来看,在目前的WP 7.5 OS中,ReadingChanged已经弃用,请改用CurrentValueChanged。 对于ReadingChanged,是这么解释的:Obsolete.Occurs when new data arrives from the accelerometer.
atManager.requestPermissionsFromUser( this.context, ['ohos.permission.ACCELEROMETER '] ); return result.permissions[0] === 'ohos.permission.ACCELEROMETER' && this.isMonitoring) return; this.isMonitoring = false; sensor.off(sensor.SensorId.ACCELEROMETER , this.accelerometerCallback); } private accelerationData: Accelerometer = { x: 0, y: 0, z: 0 } ; getCurrentAcceleration(): Accelerometer { return this.accelerationData; } calculateStride
android系统中手机传感器类型的定义 int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type SensorManager) getSystemService(Context.SENSOR_SERVICE); mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER sm.registerListener(this, Sensor.TYPE_ACCELEROMETER | Sensor.TYPE_MAGNETIC_FIELD mSensorManager.unregisterListener(this); throw new UnsupportedOperationException( "Accelerometer = Sensor.TYPE_ACCELEROMETER) { return; } String str = "X:" + event.values[0] +
要获取加速度计数据,您可以创建一个 Accelerometer 对象并监听其变化: const accelerometer = new Accelerometer({ frequency: 60 }); accelerometer.addEventListener('reading', () => { const { x, y, z } = accelerometer; console.log Acceleration X:', x); console.log('Acceleration Y:', y); console.log('Acceleration Z:', z); }); accelerometer.start
下面是目前Android支持的感应器类型: 1 TYPE_ACCELEROMETER //加速度 2 TYPE_MAGNETIC_FIELD //磁场 3 TYPE_ORIENTATION //方向 例如摇一摇功能要注册加速度感应监听器,代码示例如下: mSensroMgr.registerListener(this, mSensroMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER super.onResume(); mSensroMgr.registerListener(this, mSensroMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER onSensorChanged(SensorEvent event) { int sensorType = event.sensor.getType(); if (sensorType == Sensor.TYPE_ACCELEROMETER [0]:X轴,values[1]:Y轴,values[2]:Z轴 float[] values = event.values; if (sensorType == Sensor.TYPE_ACCELEROMETER
2.利用Additional Tools来模拟Accelerometer的数据 关于如何获得WP7上的Accelerometer传感器的数据,我这里就不再多说了。 大家可以看MSDN上的文章《How to: Get Data from the Accelerometer Sensor for Windows Phone》,要注意的就是几个命名空间Microsoft.Devices.Sensors 对于Windows Phone Developer Tools 7.0 版本,我们直接在模拟器中获取Accelerometer传感器的数据,得到的将是一个固定的值。
TYPE_ACCELEROMETER:加速传感器(硬件传感器) 2. TYPE_AMBIENT_TEMPERATURE:温度传感器(硬件传感器) 3. mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER onSensorChanged(SensorEvent event) { switch (event.sensor.getType()) { case Sensor.TYPE_ACCELEROMETER
在上图界面中右上图中是对采集的信号进行了FFT处理后可视化的效果,"Accelerometer"为加速度计。 可以在"Accelerometer"处的下拉框中选择"Head Plot"绘制电极位置图,如下图。 ? 实验图: ? ?
{ static const _channel = MethodChannel('dev.example/sensors'); static Stream<SensorData> get accelerometer { return EventChannel('dev.example/sensors/accelerometer') .receiveBroadcastStream() napi_value StartAccelerometer(napi_env env, napi_callback_info info) { SubscribeSensor(SENSOR_TYPE_ACCELEROMETER from '@ohos.sensor'; export function initSensorPlugin() { // 预加载传感器权限 sensor.on(sensor.SensorType.ACCELEROMETER HiLog 输出: #include "hilog/log.h" OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, "SensorPlugin", "Start accelerometer
Android中11中常见的传感器 ---- 加速度传感器:SENSOR_TYPE_ACCELEROMETER 磁力传感器:SENSOR_TYPE_FIELD 方向传感器:SENSOR_TYPE_ORIENTATION *
getSystemService(Context.SENSOR_SERVICE); // 重力传感器 mAcceleSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER mMagneticSensor, SensorManager.SENSOR_DELAY_GAME); 2,计算偏移角度代码 if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER = null) { Sensor accelerateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER = null) { Sensor accelerateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER
/ 131.0; // Convert to deg/s #ifdef RESTRICT_PITCH // This fixes the transition problem when the accelerometer filter if (abs(kalAngleX) > 90) gyroYrate = -gyroYrate; // Invert rate, so it fits the restriced accelerometer kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt); #else // This fixes the transition problem when the accelerometer filter if (abs(kalAngleY) > 90) gyroXrate = -gyroXrate; // Invert rate, so it fits the restriced accelerometer
interface UntitledViewController : UIViewController{ //-view (the image) used for manipulation by the accelerometer UntitledViewController.m//// SpinView - this is an example of how to deal with the rotation of views via the accelerometer imageView]; [imageView release];}//// shouldAutorotateToInterfaceOrientation - used to interact with the accelerometer
/ This class includes the implementation for [EventChannel] to listen to value /// changes from the Accelerometer It has a [readings] /// getter to provide a stream of [AccelerometerReadings]. class Accelerometer { responsible for providing a stream of [AccelerometerReadings] to listen /// to value changes from the Accelerometer child: StreamBuilder<AccelerometerReadings>( stream: Accelerometer.readings, builder: (context, snapshot eventSink.success(axisValues) } else { eventSink.error("DATA_UNAVAILABLE", "Cannot get accelerometer
Accelerometer 加速度计API允许我们访问设备的加速度数据。这可以用来创建使用设备的动作控制或者在用户摇动设备时添加交互的游戏,可能性无限! const acl = new Accelerometer({ frequency: 60 }); acl.addEventListener("reading", () => { const vector ; } }); acl.start(); 可以使用以下方式请求加速度计权限: navigator.permissions.query({ name: "accelerometer" }).then ((result) => { if (result.state === "granted") { // now you can use accelerometer api }