не могу запустить Активность в режиме ожидания на андроиде oreo и pie - PullRequest
1 голос
/ 17 мая 2019

У меня такой же вопрос, что и ниже: startActvtiy в режиме Doze на Android Pie

Я разрабатываю приложение для вызовов.После того, как я отпустил магазин игр, мои пользователи жалуются на то, что они не могут принимать вызовы, когда их телефон переходит в режим ожидания.Я использую приведенную ниже ссылку и шаг, чтобы перевести мое приложение в режим ожидания: https://developer.android.com/training/monitoring-device-state/doze-standby

экран блокировки adb shell dumpsys battery Отключить adb shell dumpsys deviceidle включить adb shell dumpsys deviceidle step (let Stepped to deep: IDLE) adbshell am set-inactive packageName true. После описанной выше процедуры я использую pixel / piexel3 XL (Android 9) для проверки потока вызовов.Я отправляю сообщение OneSignal SDK с наибольшим значением FCM / GCM (приоритет = 10) и ожидаю, что моя деятельность может быть начата.Тест не пройден.Моя активность может начаться, когда телефон находится в активном состоянии.Мои настройки OneSignal следуют примеру NotificationExtenderBareBonesExample (https://documentation.onesignal.com/docs/android-customizations#section-background-data-and-notification-overriding)

. В этом примере описывается, как приложение может получать уведомления без запуска приложения. Я также пытаюсь добавить флаг Windows, как показано ниже

>

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
    Log.d(this.getClass().toString(),"turn screen on!!!");
    Bugfender.d("onCreate", "turn screen on!!!");
    setShowWhenLocked(true);
    setTurnScreenOn(true);
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    KeyguardManager keyguardManager = (KeyguardManager) this.getSystemService(KEYGUARD_SERVICE);
    if (keyguardManager != null) {
        keyguardManager.requestDismissKeyguard(this, new KeyguardManager.KeyguardDismissCallback() {
            @Override
            public void onDismissError() {
                super.onDismissError();
                Log.e(this.getClass().toString(), "Keyguard Dismiss Error");
                Bugfender.d("onCreate", "Keyguard Dismiss Error");
            }

            @Override
            public void onDismissSucceeded() {
                super.onDismissSucceeded();
                Log.d(this.getClass().toString(),"Keyguard Dismiss Success");
                Bugfender.d("onCreate", "Keyguard Dismiss Success");
            }

            @Override
            public void onDismissCancelled() {
                super.onDismissCancelled();
                Log.w(this.getClass().toString(), "Keyguard Dismiss Cancelled");
                Bugfender.d("onCreate", "Keyguard Dismiss Cancelled");
            }
        });
    }
}

Я проверяю свое сообщение в журнале, мой телефон пытается запустить действие, но действие сразу после его создания переходит в состояние уничтожения. Журнал показывается ниже:

2019-05-16 19:00:52 +0800 UI android.app.Application.dispatchActivityPaused Активация приостановлена: IncomingCallActivity 2019-05-16 19:00:52 +0800 Интерфейс android.app.Application.dispatchActivityПроизведенная активность создана: VideoChatViewActivity 2019-05-1619:00:53 +0800 UI android.app.Application.dispatchActivityStarted Активность запущена: VideoChatViewActivity 2019-05-16 19:00:53 +0800 Интерфейс android.app.Application.dispatchActivityResumed Активность возобновлена: VideoChatViewActivity 2019-05-16 19:00:53 +0800 Пользовательский интерфейс android.app.Application.dispatchActivityPaused Активация приостановлена: VideoChatViewActivity 16.09.2015 19:00:53 +0800 UI android.app.Application.dispatchActivityStopped Активность остановлена: IncomingCallActivity 2019-05-16 19:00:53 +0800 Интерфейс android.app.Application.dispatchActivityDestroyed Активность уничтожена: IncomingCallActivity

Понятия не имею, почему моя активность не может быть активна после получения push-сообщения.Пожалуйста, дайте мне совет

...