传感器
# 包
from ascript.android.sensor import AccelerometerSensor
from ascript.android.sensor import GyroscopeSensor
from ascript.android.sensor import LightSensor
from ascript.android.sensor import ProximitySensor
from ascript.android.sensor import GpsSensor
读取设备传感器数据,包括加速度计、陀螺仪、光线、接近、GPS等.
AccelerometerSensor 加速度计
检测设备在 X、Y、Z 三个轴方向上的加速度(单位: m/s²).
监听加速度变化
- 函数
@AccelerometerSensor.on(delay=AccelerometerSensor.DELAY_NORMAL)
def callback(event):
pass
- 参数
| 参数 | 类型 | 必须 | 备注 |
|---|---|---|---|
| delay | int | 否 | 采样速率,默认 DELAY_NORMAL,见下表 |
采样速率
| 常量 | 备注 |
|---|---|
| DELAY_NORMAL | 正常速率,适合一般检测 |
| DELAY_UI | 适合界面交互 |
| DELAY_GAME | 适合游戏场景 |
| DELAY_FASTEST | 最快速率,耗电较高 |
- 回调参数 event
| 属性 | 类型 | 备注 |
|---|---|---|
| x | float | X轴加速度 (m/s²) |
| y | float | Y轴加速度 (m/s²) |
| z | float | Z轴加速度 (m/s²) |
- 示例
from ascript.android.sensor import AccelerometerSensor
import time
@AccelerometerSensor.on()
def on_accel(event):
print(f"加速度 X:{event.x:.2f} Y:{event.y:.2f} Z:{event.z:.2f}")
time.sleep(10)
AccelerometerSensor.stop()
检测摇一摇
from ascript.android.sensor import AccelerometerSensor
import math, time
@AccelerometerSensor.on()
def on_shake(event):
total = math.sqrt(event.x**2 + event.y**2 + event.z**2)
if total > 15:
print("检测到摇一摇!")
time.sleep(30)
AccelerometerSensor.stop()
停止监听
AccelerometerSensor.stop()
GyroscopeSensor 陀螺仪
检测设备绕 X、Y、Z 三个轴的旋转角速度(单位: rad/s).
监听陀螺仪变化
- 函数
@GyroscopeSensor.on(delay=GyroscopeSensor.DELAY_NORMAL)
def callback(event):
pass
- 回调参数 event
| 属性 | 类型 | 备注 |
|---|---|---|
| x | float | X轴角速度 (rad/s) |
| y | float | Y轴角速度 (rad/s) |
| z | float | Z轴角速度 (rad/s) |
- 示例
from ascript.android.sensor import GyroscopeSensor
import time
@GyroscopeSensor.on(delay=GyroscopeSensor.DELAY_GAME)
def on_gyro(event):
print(f"陀螺仪 X:{event.x:.4f} Y:{event.y:.4f} Z:{event.z:.4f}")
time.sleep(10)
GyroscopeSensor.stop()