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实现这一点(即在睡眠模式下振动)?