Java 在安卓系统中,即使屏幕进入睡眠模式,也要继续振动
在我的应用程序中,我通过以下代码启动可控震源_服务Java 在安卓系统中,即使屏幕进入睡眠模式,也要继续振动,java,android,android-service,Java,Android,Android Service,在我的应用程序中,我通过以下代码启动可控震源_服务 long[] pattern = {50,100,1000} Vibrator vibe=(Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); vibe.vibrate(pattern, 0); 我希望振动持续到我打电话为止 vibe.cancel(); 代码工作正常,但当屏幕进入睡眠模式时,振动会消失 我希望即使屏幕进入睡眠模式,振动仍能继续。有没有办法做到这一点?请
long[] pattern = {50,100,1000}
Vibrator vibe=(Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(pattern, 0);
我希望振动持续到我打电话为止
vibe.cancel();
代码工作正常,但当屏幕进入睡眠模式时,振动会消失
我希望即使屏幕进入睡眠模式,振动仍能继续。有没有办法做到这一点?请帮帮我
提前感谢。:) 试试这个,它可能会对你有帮助。首先为此制作
广播接收器
,以便在手机光幕关闭时写入振动手机的逻辑
public BroadcastReceiver wakeLockReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
//WRITE LOGIC OF VIBRATION.
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(wakeLockReceiver, filter);
在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.VIBRATE"/>
这个问题的正确答案如下 在执行此操作之前,不要忘记将权限“
android.permission.vibrane
”添加到应用程序清单文件中
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在此不起作用,因为只有在屏幕关闭后,接收器才会接收到意图。虽然我们可以在屏幕进入关闭模式后获得wakelock,但振动会停止,因为振动是在
操作屏幕关闭时发生的。因此,可以在收到广播后再次启动振动。据我所知,您可以通过获取wakelock来完成此操作。谢谢您的回答。你能解释一下密码吗?你认为这个代码会使我的设备在屏幕进入睡眠模式后仍然振动吗?因为我认为它会使手机振动。试着这样做。我试过你的代码。但不幸的是,我在执行语句“wakeLock.acquire(15*1000);”时出错。错误是“java.lang.RuntimeException:Error receiving broadcast Intent{act=android.Intent.action.SCREEN_OFF flg=0x40000000}”。@Anu我认为现在不需要添加权限“android.permission.WAKE_LOCK”。请不要写这个,谢谢TGMCians给了我广播接收器的想法。我已经在回答中解释了为什么他的答案不适合我的要求。有没有办法用JavaScript实现这一点(即在睡眠模式下振动)?