Можно ли вибрировать с приемника вещания при входящем звонке - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь создать пользовательскую вибрацию входящего вызова

public class CallsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
            AudioManager am = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
            long[] VIBRATE_PATTERN = {500,500,500,500,500,500,500,500};
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            // API 26 and above
            mVibrator.vibrate(VibrationEffect.createWaveform(VIBRATE_PATTERN,-1));
            } else {
                // Below API 26
                mVibrator.vibrate(VIBRATE_PATTERN, -1);
            }
        }
    }
}

Я уже пытался запустить вибрацию в новом потоке и запустить ее из службы, но безуспешно. Я провел исследование и понял, что на новых android уровнях API код в широковещательном приемнике выполняется с низким приоритетом, поэтому я попытался запустить задание расписания -> службу с более высоким приоритетом, и я получил тот же результат.

есть немного времени, когда начинается короткая вибрация, но она прекращается после этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...