你是否曾经在房间郑手机,并想知道它何时停止移动?
传感器可以帮助您!
欲访问传感器 请使用sensors_plus包。
它使您可以访问两个传感器,分别是Accelerometer和Gyroscope
您可以在每个传感器中获得一个分流, 例如,AccelerometerEvent的分流会告诉您手机的去向。分流发送的事件包含X,Y和Z值,表示手机位置变化的速度
但这些数字是司机上代表什么呢?
void initState() {
accelerometerEvents.listen(
(AccelerometerEvent event) {
var x = event.x;
var y = event.y;
var z = event.z;
}
),
}
把你的手机想象成空间中的一个点,它没有在动,对吧?
事实也许不然,你在一个有中立的星球上,对吧?
即使它看起来不像在动,实际上,它也试图在向下移动。
至少在地球上,如果上下方,没有发生任何其他事情,那就是Y如果您将手机直立,则始终具有恒定的9.8 meters/second 向下力,
void initState() {
accelerometerEvent.listen(
(AccelerometterEvent event) {
var x = event.x;// ~0
var y = event.y;// ~9.8
var z = event.z;// ~0
}
),
}
但有时重力有点儿难以计算,这种情况下请使用userAccelerometerEvent提呼喊AccelerometerEvent,它告诉您手机在没有中立的情况下运动,保持手机完全稳定杆它在每个方向的位置变化都为零。
void initState() {
userAccelerometerEvents.listen(
(UserAccelerometerEvent event) {
var x = event.x; // ~0
var y = event.y; // ~0
var z = event.z; // ~0
}
),
}
接下来,将您的手机想象成一个扁平的直立正方形
现在,倾斜它
它是否继续倾斜得更多?
与Accelerometer一样 sensors_plus可让您通过发送事件的分流访问gyroscope,注意听,当事情发生变化时,它会给你GyroscopeEvents,它也包括X、Y和Z,它们代表了手机的方向倾斜度如何变化。保持它的完全静止,一切将会归零
void initState() {
gyroscpreEvents.listen() {
(GyroscopeEvent event) {
var x = event.x;// ~0
var y = event.y;// ~0
var z = event.z;// ~0
},
}
}
做一些激进的事情。比如,把它向左旋转。您会看到一些新数字代表它转多块
void initState() {
gyroscopeEvent.listen(
(GyroscopeEvent event) {
var x = event.x; // ~0
var y = event.y; // ~0
var z = event.z; // ~1.0
}
),
}
该如何处理这些信息呢?随意
但是,也许可以在手机崩溃前保存这些数据
如果想了解有关sensors_plus的内容,或者关于Flutter的其他功能,请访问flutter.dev
原文翻译自视频:视频地址