在我的应用程序中,我通过以下代码启动 VIBRATOR_SERVICE
long[] pattern = {50,100,1000}
Vibrator vibe=(Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(pattern, 0);
我希望振动持续到我打电话为止
vibe.cancel();
代码运行良好,但当屏幕进入休眠模式时振动消失。
我希望即使在屏幕进入休眠模式后振动仍会继续。有什么办法可以做到这一点?请帮助我。
提前致谢。 :)
最佳答案
问题的正确答案如下
在执行此操作之前,不要忘记将权限“android.permission.VIBRATE
”添加到您的应用程序 list 文件中。
public BroadcastReceiver vibrateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
vibe.vibrate(pattern, 0);
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(vibrateReceiver, filter);
wakelock 在这里不起作用,因为接收器只有在屏幕熄灭后才会收到 Intent 。虽然我们可以在屏幕进入关闭模式后获得唤醒锁,但振动停止,因为它发生在 ACTION_SCREEN_OFF
时。所以可以在收到广播后重新开始振动来完成。
关于java - 即使在 Android 屏幕进入休眠模式后仍继续振动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561551/