Flutter 传感器-震动?

Flutter 传感器-震动?,flutter,sensors,Flutter,Sensors,这个周末刚开始拍《颤栗》,我进步很大。 我有一个应用程序,当图像被点击时,或者如果手机被晃动,它可以简单地改变屏幕上的图像。第一部分很简单,一打开,我的图像就变了。与摇晃部分斗争。 我一直在看传感器包,但运气不太好(可能是因为我不完全理解我在找什么!)。我是否只想让应用程序在某个加速计发生更改时监听,如果是,请运行我的更改图像功能?如果是这样,最好的方法是什么? 欢迎有其他想法! 谢谢大家:) 更新:这是我到目前为止所拥有的,与我从Shake文档中读到的几乎完全相同。但在shake上什么也没有发

这个周末刚开始拍《颤栗》,我进步很大。 我有一个应用程序,当图像被点击时,或者如果手机被晃动,它可以简单地改变屏幕上的图像。第一部分很简单,一打开,我的图像就变了。与摇晃部分斗争。 我一直在看传感器包,但运气不太好(可能是因为我不完全理解我在找什么!)。我是否只想让应用程序在某个加速计发生更改时监听,如果是,请运行我的更改图像功能?如果是这样,最好的方法是什么? 欢迎有其他想法! 谢谢大家:)

更新:这是我到目前为止所拥有的,与我从Shake文档中读到的几乎完全相同。但在shake上什么也没有发生

导入“包装:颤振/材料.省道”;
进口“包装:摇动/摇动.省道”;
void main(){
runApp(DemoPage());
}
String mytext=“Martini?”;
类DemoPage扩展了StatefulWidget{
@凌驾
_DemoPageState createState();
}
类_DemoPageState扩展状态{
@凌驾
void initState(){
super.initState();
ShakeDetector=ShakeDetector.waitForStart(onPhoneShake:(){
mytext=“摇动,不搅拌”;
打印(“你好”);
});
检测器;
//要关闭:检测器。停止侦听();
//waitForStart()等待用户调用detector.startListening();
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
主体:容器(
子项:填充(填充:常量边集。全部(50),子项:
正文(
我的文本,
textAlign:textAlign.center,
样式:TextStyle(
尺寸:25,
),
)))));
}
}
使用软件包识别震动事件并执行某些操作

要收听手机震动,请执行以下操作:

ShakeDetector detector = ShakeDetector.autoStart(
    onPhoneShake: () {
        // Do stuff on phone shake
    }
);

要停止收听:

detector.stopListening();
要在pubspec.yaml文件中安装此软件包,请遵循链接

可以在链接上找到样本

导入“包装:颤振/材料.省道”;
进口“包装:摇动/摇动.省道”;
类DemoPage扩展了StatefulWidget{
@凌驾
_DemoPageState createState();
}
类_DemoPageState扩展状态{
@凌驾
void initState(){
super.initState();
ShakeDetector=ShakeDetector.autoStart(onPhoneShake:(){
//在电话里做些什么
});
//要关闭:检测器。停止侦听();
//waitForStart()等待用户调用detector.startListening();
}
@凌驾
小部件构建(构建上下文){
返回脚手架();
}
}

我正在制作一个类似于你的应用程序。当我们摇动手机时,你只想改变图像或做其他事情,对吗

软件包“package:shake/shake.dart”非常适合这项工作。这个软件包有一些预定义的功能,使用加速度计从我们的手机读取数据,并检测我们何时摇晃手机以及何时停止

而不是使用:

ShakeDetector detector = ShakeDetector.waitForStart(onPhoneShake: () {
  mytext = "Shaken, not stirred";
  print("hello");
});
我使用了:

 ShakeDetector detector = ShakeDetector.autoStart(onPhoneShake: () {
      setState(() {
        //Code for changing image or something else.
      });
 });
这解决了问题,当我摇晃手机并停止时,图像在我停止摇晃后发生变化

我不知道这个包中给出的其他函数,比如waitForStart()和stopListening()函数。上面的autoStart()函数实现了我想要的功能。

根据它所依赖的文档

您必须在pubspec.yaml的依赖项列表中添加传感器插件

这将使你的震动插件检测震动


祝你编码愉快!请注意安全。

您应该发布您的努力,并描述您使用的软件包和错误。一个只有几句话的问题并不能解决问题。我几乎完全遵循了这一点,但没有任何变化(参见上面的代码)。我感觉我可能遗漏了一些显而易见的东西来让它工作?你在initState()函数中调用了ShakeDetector.autoStart函数?@SardorbekRkh是的,我在initState()中调用了ShakeDetector.autoStart函数。
ShakeDetector detector = ShakeDetector.waitForStart(onPhoneShake: () {
  mytext = "Shaken, not stirred";
  print("hello");
});
 ShakeDetector detector = ShakeDetector.autoStart(onPhoneShake: () {
      setState(() {
        //Code for changing image or something else.
      });
 });