当前位置: 首页 > 知识库问答 >
问题:

Android:如何通过开/关模式控制振动频率

孟嘉歆
2023-03-14

我在试着控制Android手机的震动频率。

据我所知,android API提供了一个通过开/关模式来控制振动的接口:

公共空隙振动(长[]模式,int重复)

Vibrator vib = (Vibrator)this.context.getSystemService(Context.VIBRATOR_SERVICE);
...
long[] arrPattern = new long[20*10];
for (int i =0; i<arrPattern.length; ++i) // each duty circle is 50 ms
{
    arrPattern[i] = (i%2==0)?1:49;
}
vib.vibrate(pattern, -1);

通过DFT将这些时域加速度数据转换到频域后,我注意到无论我设置哪个振动频率,在10Hz和175Hz附近总是有一个显著的功率。

我在想为什么它不起作用?

共有1个答案

戚翼
2023-03-14

文件明确指出:

第一个参数应该是一个长变量数组,其解释方式如下:索引[0]上的值(以及(索引%2==0))索引上的数组的每个值)充当缓冲区(每次后续振动之间应该经过多少时间),而数组的(索引%2!=0)任何索引上的值充当振动过程的持续时间(振动器应该持续多少毫秒)。

第二个是非常不言自明的,你似乎也不需要它。(传递-1只会在数组中循环一次,不会重复)

 类似资料:
  • 我知道这个问题已经在通过亚行打开飞机模式中得到了回答。但是,对于Android 7(牛轧糖)和以上建议的方法不起作用。我得到以下错误。 有解决方法吗? 这对通过adb播放Android牛轧糖有影响吗? 提前致谢。

  • 问题内容: 是否可以通过代码打开/关闭省电模式? 目前,我确实进行了唤醒锁的获取和释放,但是我认为那是不一样的。 问题答案: SDK中没有任何公开可用的API可以执行此操作。您可以使用PowerManager来获取和释放唤醒锁,仅此而已。此外,每个制造商和设备都可能具有其自己的“省电模式”版本,因此没有必要为第三方应用程序开发人员提供以这种方式与系统进行交互的API。

  • 我想通过在selenium webdriver中按键盘键Ctrl打开chrome浏览器控制台。我可以使用Robot类来做这个动作,但我希望没有Robot类。我使用了Actions类和Keys类,使用的是sendKeys。但我无法打开浏览器控制台。 是chrome浏览器版本问题还是操作系统问题?为什么浏览器控制台没有使用Action类和Keys类打开?

  • 我一直在使用Android AltBeacon库来监控和定位附近的iBeacons。该应用程序的一个特定要求是允许扫描信标检测,即使当应用程序在后台时也允许扫描信标检测,并且当应用程序关闭时完全停止扫描信标检测。 据我所知,这个需求可以通过bootstrapnotifier/regionbootstrap部分满足,但是扫描服务即使在应用程序关闭时也会重新启动,这是我不希望发生的。

  • 如果我把筹码拖离初始位置,它应该画一条线。当我移动筹码时,它应该总是画一条线。 这就是我所尝试的: 我将该代码放在芯片的ontouch listener中。您可以在此处下载该项目:https://www.dropbox.com/s/ggfbsbkaokj9vxi/CoachingBoard.rar?dl=0

  • 控制台-频道-开始 接口URL {youke-url}/console/Index.php?c=live&a=start&timestamp=1607677497&access_key=abc&sign=04394c5a45b6920bed314e94e178ebcf1dfded74 请求方式 POST Content-Type form-data 请求Query参数 参数 示例值 是否必填 参数