Сообщение Android "Обнаружено наложение экрана", если пользователь пытается предоставить разрешение при отображении уведомления
У меня есть Android Marshmallow на Nexus 6. Я пытаюсь решить следующую проблему:
Если пользователь пытается предоставить разрешение во время отображения уведомления, отображается сообщение "Обнаружен наложение экрана" и диалоговое окно "Запросить разрешение" исчезает - конечно, приложение не получает запрошенное разрешение. (Проверьте скриншот)
Я попытался решить проблему, добавив в манифест разрешение "НАНЕСИТЬ НАД ДРУГИМИ ПРИЛОЖЕНИЯМИ" - android.permission.SYSTEM_ALERT_WINDOW, но безуспешно.
PS: я уверен, что проблема вызвана уведомлением. У меня не установлено ни одного приложения, которое накладывается поверх других приложений, я даже отключил все приложения с разрешением "Рисовать поверх других приложений" в настройках. Не помогло..
Кто-нибудь знает решение этой проблемы?
12 ответов
В обстоятельствах, с которыми я столкнулся, я сам вызывал проблему. Это было результатом использования Toast
отображать информацию для пользователя в то время, когда я просил разрешения. Оба эти действия вместе вызывают этот тип ошибки.
Другие ответы могут решить чью-либо проблему. Но я хотел бы отметить, что вы должны быть осторожны, вызывая собственные ошибки наложения. Будьте осторожны с наложением чего-либо в представление, одновременно запрашивая разрешение.
Удалить приложение Clean Master. Я удалил его и проблема решена
Эта проблема возникает из-за некоторых приложений преступника, таких как Сумерки, уборщик, Друпе и т. Д.
Чтобы решить эту проблему, вы должны отключить наложение экрана для этих приложений преступника.
у меня есть moto g4 plus, и вот как я решаю эту проблему
Перейдите в "Настройки" -> "Выбрать приложения" -> снова выберите значок настройки в "Приложениях" -> выберите "Рисовать поверх других приложений" -> и отключите приложения-виновника, которые беспокоят другие приложения.
я проверил каждое приложение, отключив это разрешение, и попытался запустить мое приложение, и я нашел одно приложение с тревожным наложением для других приложений, поэтому в конце я отключил только это приложение.
ScreenShots:
Получил информацию из нескольких ответов здесь и на других форумах.
Консолидация, как я избавился от проблемы:
- Перейдите в Настройки> Приложения> (ваше приложение, которое становится проблемой)
- Нажимайте кнопку питания до тех пор, пока не появится окно для выключения питания, перезагрузки, перехода в режим полета.
- Задержка выключения питания
- Выберите перезагрузку в безопасном режиме
- Перейдите в настройки> приложения> (ваше приложение, которое становится проблемой)
- Выберите, какие разрешения вы хотите
- После обновления 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, в частности. Надеюсь это поможет
Удалите приложения с наложением экрана, например CM Security, Clean Master и т. Д.
Даже удалите и попробуйте с Messenger (приложение FB), если это необходимо.