Сообщение Android "Обнаружено наложение экрана", если пользователь пытается предоставить разрешение при отображении уведомления

У меня есть Android Marshmallow на Nexus 6. Я пытаюсь решить следующую проблему:

Если пользователь пытается предоставить разрешение во время отображения уведомления, отображается сообщение "Обнаружен наложение экрана" и диалоговое окно "Запросить разрешение" исчезает - конечно, приложение не получает запрошенное разрешение. (Проверьте скриншот)

Я попытался решить проблему, добавив в манифест разрешение "НАНЕСИТЬ НАД ДРУГИМИ ПРИЛОЖЕНИЯМИ" - android.permission.SYSTEM_ALERT_WINDOW, но безуспешно.

PS: я уверен, что проблема вызвана уведомлением. У меня не установлено ни одного приложения, которое накладывается поверх других приложений, я даже отключил все приложения с разрешением "Рисовать поверх других приложений" в настройках. Не помогло..

Кто-нибудь знает решение этой проблемы?

12 ответов

В обстоятельствах, с которыми я столкнулся, я сам вызывал проблему. Это было результатом использования Toast отображать информацию для пользователя в то время, когда я просил разрешения. Оба эти действия вместе вызывают этот тип ошибки.

Другие ответы могут решить чью-либо проблему. Но я хотел бы отметить, что вы должны быть осторожны, вызывая собственные ошибки наложения. Будьте осторожны с наложением чего-либо в представление, одновременно запрашивая разрешение.

Удалить приложение Clean Master. Я удалил его и проблема решена

Эта проблема возникает из-за некоторых приложений преступника, таких как Сумерки, уборщик, Друпе и т. Д.

Чтобы решить эту проблему, вы должны отключить наложение экрана для этих приложений преступника.

у меня есть moto g4 plus, и вот как я решаю эту проблему

Перейдите в "Настройки" -> "Выбрать приложения" -> снова выберите значок настройки в "Приложениях" -> выберите "Рисовать поверх других приложений" -> и отключите приложения-виновника, которые беспокоят другие приложения.

я проверил каждое приложение, отключив это разрешение, и попытался запустить мое приложение, и я нашел одно приложение с тревожным наложением для других приложений, поэтому в конце я отключил только это приложение.

ScreenShots:

Выберите приложения выберите настройку

выберите рисовать поверх других приложений отключить приложения-виновника

Получил информацию из нескольких ответов здесь и на других форумах.

Консолидация, как я избавился от проблемы:

  1. Перейдите в Настройки> Приложения> (ваше приложение, которое становится проблемой)
  2. Нажимайте кнопку питания до тех пор, пока не появится окно для выключения питания, перезагрузки, перехода в режим полета.
  3. Задержка выключения питания
  4. Выберите перезагрузку в безопасном режиме
  5. Перейдите в настройки> приложения> (ваше приложение, которое становится проблемой)
  6. Выберите, какие разрешения вы хотите
  7. После обновления Android M могут возникнуть проблемы в таких приложениях, как Messenger, Whatsapp, Prisma и т. Д.

Дайте мне знать, если возникнут проблемы.

Примечание: у меня есть один плюс один мобильный телефон.

Это всплывающее окно вызвано декларацией manifest.PERMISSION.SYSTEM_ALERT_WINDOW, объявленной манифестом.

Это 3 категории разрешений, о которых должен знать разработчик:

Нормальное разрешение - ничего с ними не делать, просто объявить в Манифесте

Уязвимые разрешения - объявите в манифесте и запросите разрешение в первый раз. Их можно изменить через системные настройки.

Над опасными разрешениями: SYSTEM_ALERT_WINDOW и WRITE_SETTINGS относятся к этой категории. Они должны быть предоставлены, но не отображаются в настройках системы. Чтобы запросить его, вы не используете стандартный способ (int checkSelfPermission (разрешение String)), но вы должны проверить Settings.canDrawOverlays() или Settings.System.canWrite() соответствующим образом, и если вы этого не сделаете, вы получите исключение, например

Невозможно добавить окно android.view.ViewRootImpl$W@1de28ad - разрешение отклонено для этого типа окна

1-Запросите это разрешение самостоятельно в своем коде, как указано ниже:

public class MainActivity extends AppCompatActivity {

public final static int REQUEST_CODE = 10000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (checkDrawOverlayPermission()) {
          Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
    }
}

public boolean checkDrawOverlayPermission() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
        return true;
    }
    if (!Settings.canDrawOverlays(this)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
            Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, REQUEST_CODE);
        return false;
    } else {
        return true;
    }
}

@Override
@TargetApi(Build.VERSION_CODES.M)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (Settings.canDrawOverlays(this)) {
              Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
        }
    }
}

Я просто удалил свое приложение и выключил свой Nexus 6P. После повторного включения я переустановил приложение и больше не получал диалогов "наложение экрана" при предоставлении разрешений для приложения.

Это происходит, когда вы предоставили разрешение наложения вредоносным приложениям. Перейдите к настройкам наложения и отключите функцию наложения во всех приложениях, которые не принадлежат Google, и все будет в порядке.

Пока Android 6.x глючит на некоторых устройствах, где это "предупреждение о наложении" отображается без какой-либо причины (на 2–5% устройств, согласно моим аналитическим данным), лучшее решение - избежать всего процесса разрешения путем определяя targetSdk до 22.

Позаботьтесь о том, чтобы вы не смогли понизить целевой SDK для новой версии, иначе это вызовет ошибку INSTALL_FAILED_PERMISSION_DOWNGRADE, когда пользователь обновляет систему, требуя отмены установки / установки приложения.

Я обновил свой Sony Xperia Z3 (Dual Sim) до Android 6.0.1 (Marsmallow). У меня были проблемы с наложением экрана. Для меня у меня нет Clean Master, Du Speed ​​или Du Booster(как решения, которые я читал).

Так что я решил поискать любые приложения наложения экрана.

Приложение с перекрытием экрана - это приложение, которое можно использовать для доступа к другим приложениям на главном главном экране, не выходя из главного экрана. Так что для меня приложение Screen Overlay здесь, в моей ситуации, было OMNI SWIPE. Поэтому, если вы столкнулись с этой проблемой, вам нужно успокоиться и проверить, какое из ваших приложений соответствует определению приложения наложения экрана.

найдите приложение и удалите, а затем перезагрузите телефон.

я только что закончил делать это и хорошо провожу время с телефоном

Удачи

Решение

удалить сообщения Toast из метода onRequestPermissionsResult

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

Я получил эту проблему при установке нового приложения. Чтобы обойти эту проблему, нужно вручную разрешить разрешения для вновь установленного приложения (перед запуском приложения). Я уверен, что это проблема с Android и Samsung, в частности. Надеюсь это поможет

  1. Удалите приложения с наложением экрана, например CM Security, Clean Master и т. Д.

  2. Даже удалите и попробуйте с Messenger (приложение FB), если это необходимо.

Другие вопросы по тегам