编辑感谢YP D 的回答,我有一个解决方案。在最后添加
自从将我的 Pixel 3 更新到 android 版本 10 (API 29) 后,我的应用程序的振动就不起作用了。
我的应用程序请求振动权限,并且在早期(< API 29)版本上有振动。权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
Run Code Online (Sandbox Code Playgroud)
将手机连接到 Android Studio 并查看 logcat 时,我注意到以下错误:
2019-09-11 18:46:28.622 1474-1546/? E/NotificationService: Suppressing notification from package by user request.
2019-09-11 18:46:28.816 1474-3294/? E/VibratorService: Ignoring incoming vibration as process with uid = 10284 is background, usage = USAGE_UNKNOWN
Run Code Online (Sandbox Code Playgroud)
我的振动代码(durationMs 是 50,但我也用 500 测试过):
Vibrator v = (Vibrator) context.getSystemService(VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(durationMs, VibrationEffect.DEFAULT_AMPLITUDE));
} else { …Run Code Online (Sandbox Code Playgroud)