如何让Android手机在摇晃时振动?

Posted

技术标签:

【中文标题】如何让Android手机在摇晃时振动?【英文标题】:How I can get an Android phone to vibrate while shaking it? 【发布时间】:2014-08-29 18:26:56 【问题描述】:

我只是好奇我的应用程序是否会以这种方式在手机震动时使其振动:

if(event.values[0] > 1.0) 
    vibrator.vibrate(500);

else 
    if(event.values[1] > 1.0)
    vibrator.vibrate(500);

我正在做的是 SensorEventListener 和我并结合 2 个听众。

这样做会成功吗?由于我没有 android 手机,我无法对其进行测试,所以我询问(编程方面)这是否可能。

【问题讨论】:

【参考方案1】:

是的,它会这样工作。只需确保在手机振动的 500 毫秒内停止处理传感器事件即可。

boolean isVibrating = false;
Handler handler = new Handler(Looper.getMainLooper());

if(!isVibrating)
    if(event.values[0] > 1.0) 
        vibrate(500);
     else if(event.values[1] > 1.0)
        vibrate(500);
    


void vibrate(long time)
    isVibrating = true;
    vibrator.vibrate(time);
    handler.postDelayed(new Runnable()
            public void run()
                isVibrating = false;
            
        ,
        time)

【讨论】:

感谢您的回答。对于停止处理部分:我应该使用哪种方法?取消()? 我认为您无需停止监听传感器。只需切换一个标志并将代码包装在 if 中。 我已经用示例代码更新了答案。我没有测试它,所以它可能有语法错误,但我希望你明白。

以上是关于如何让Android手机在摇晃时振动?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio手机来指定短信就发出震动和铃声?如何编程?

如何从 Qt Android 使手机振动

如何在android中为按钮设置动画?

如何在Android中设置铃声+震动

无法使用 Qt for Android 使手机播放声音或振动

如何在配置文件处于振动模式时使手机振动或在配置文件处于静音模式时从不响铃并在响铃模式下响铃