如何获取Android设备的默认振动模式?

zol*_*ola 4 android android-vibration android-6.0-marshmallow

我正在为Android API 23创建一个应用程序,我想获取手机响起时使用的默认振动模式吗?

到目前为止,我有:

Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = {0, 500, 1000}; // default pattern goes here
vibrator.vibrate(pattern, 0);
Run Code Online (Sandbox Code Playgroud)

如何获得默认模式?

ali*_*dro 6

默认振动模式可以在下面的类中找到:com/android/server/notification/NotificationManagerService.java,这是

static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
Run Code Online (Sandbox Code Playgroud)

此处查看源代码。

不幸的是,到目前为止,还没有公共API可以获取此默认模式。


God*_*ave 5

据我所知,默认的振动模式是

{ delay, vibrate, sleep, vibrate, sleep } pattern
Run Code Online (Sandbox Code Playgroud)

如果你的代码

long[] pattern = new long[] { 1000, 1000, 1000, 1000, 1000 };
Run Code Online (Sandbox Code Playgroud)

现在振动延迟设置为 1000 毫秒。如果将第一个设置为 0,它将立即关闭。

  • 我知道这并不能回答问题,但感谢您解释模式值背后的含义。这帮助我解决了另一个问题! (2认同)