在我的应用程序中,我通过以下代码启动 VIBRATOR_SERVICE
long[] pattern = {50,100,1000}
Vibrator vibe=(Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(pattern, 0);
我希望振动持续到我打电话为止
vibe.cancel();
代码工作正常,但当屏幕进入睡眠模式时振动消失。
我希望即使屏幕进入睡眠模式后振动仍然继续。有什么方法可以做到这一点吗?请帮我。
提前致谢。 :)
该问题的正确答案如下
执行此操作之前,不要忘记添加权限”android.permission.VIBRATE
”到您的应用程序清单文件。
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在这里不起作用,因为接收器只有在屏幕关闭后才会收到意图。虽然我们可以在屏幕进入关闭模式后获取唤醒锁,但振动会停止,因为它发生在ACTION_SCREEN_OFF
。所以可以通过收到广播后重新开始震动来完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)