3

私のアプリケーションでは、次のコードを使用して VIBRATOR_SERVICE を開始しています

long[] pattern = {50,100,1000}
Vibrator vibe=(Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(pattern, 0);

電話するまでバイブレーション続けてほしい

vibe.cancel();

コードは正常に動作していますが、画面がスリープ モードになると振動がなくなります。

画面がスリープモードになっても振動を続けたい。これを行う方法はありますか?私を助けてください。

前もって感謝します。:)

4

2 に答える 2

4

質問に対する正しい答えは次のとおりです

これを行う前に、許可「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);

画面がオフになった後にのみレシーバーがインテントを受信するため、ウェイクロックはここでは機能しません画面がオフモードになった後、ウェイクロックを取得できますが、振動は停止しますACTION_SCREEN_OFF。そのため、ブロードキャストを受信した後に再度振動を開始することで実行できます。

于 2013-01-29T05:45:26.417 に答える
1

これを試してみてください。最初broadcast receiverにこれを作成して、モバイルライトスクリーンがオフになったときにバイブレーションモバイルのロジックを記述します。

 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"/>
于 2013-01-28T12:04:44.233 に答える