Wakelock - имя тега должно использовать уникальный префикс, за которым следует двоеточие

1

Изображение 174551

Имя тега должно использовать уникальный префикс, за которым следует двоеточие (найденный тег). Например, myapp:mywakelocktag. Это поможет с отладкой меньше... (Ctrl + F1)

Теги Wake Lock должны соответствовать соглашениям об именах, определенным в документации PowerManager. Идентификатор проблемы: InvalidWakeLockTag

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        float distance = sensorEvent.values[0];
        if (!isVideo && !isSpeaker) {
            PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
            if (distance < 4) {
                if (wlOn != null && wlOn.isHeld()) {
                    wlOn.release();
                }
                if (pm != null) {
                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                        if (wlOff == null)
                            wlOff = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
                        if (!wlOff.isHeld()) wlOff.acquire();
                    }
                }
            } else {
                if (wlOff != null && wlOff.isHeld()) {
                    wlOff.release();
                }
                if (pm != null) {
                    if (wlOn == null)
                        wlOn = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
                    if (!wlOn.isHeld()) wlOn.acquire();
                }
            }
        }
    }
Теги:
android-studio

2 ответа

2

Из документации по адресу https://developer.android.com/reference/android/os/PowerManager#newWakeLock(int,%20java.lang.String) тег должен следовать приведенным ниже рекомендациям. Пожалуйста, убедитесь, что вы делаете.

Рекомендуемые соглашения по присвоению имен тегам для упрощения отладки:

  • используйте уникальный префикс, разделенный двоеточием, для вашего приложения/библиотеки (например, gmail: mytag), чтобы было легче понять, откуда взялись блокировки. Это пространство имен также позволит избежать коллизий для тегов внутри вашего приложения, поступающих из разных библиотек, что облегчит отладку.
  • используйте константы (например, не включайте метки времени в теге), чтобы инструментам было проще объединять похожие блокировки пробуждения. При сборе данных отладки платформа отслеживает только конечное число тегов, а использование констант поможет инструментам улучшить качество данных отладки.
  • Избегайте использования Class # getName() или аналогичного метода, поскольку это имя класса может быть преобразовано с помощью инструментов оптимизатора java и обфускатора.
  • избегайте наматывания тега или префикса, чтобы избежать столкновения с тегами пробуждения от платформы (например, тревога).
  • никогда не включайте личную информацию в целях конфиденциальности.

Решение

Ваш тег "tag", замените его на что-то вроде myapp:tagforclassxyz

1

Исправлено путем изменения "tag" на "AppName:tag"

Это просто поиск двоеточия внутри строки. Это не очень понятное сообщение, я сначала запутался и искал решение. Я думал, что он просит меня сделать строковую переменную и ссылаться на эту переменную.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню