Сообщение Android "Обнаружение экрана", если пользователь пытается предоставить разрешение при показе уведомления
У меня есть Android Marshmallow на Nexus 6. Я пытаюсь решить следующую проблему:
Если пользователь пытается предоставить разрешение во время показа уведомления, появляется сообщение "Обнаружение наложения экрана", и диалог разрешения запроса исчезает - конечно, приложение не получает запрашиваемого разрешения. (Проверьте скриншот)
Я попытался исправить проблему, добавив разрешение "DRAW OVER OTHER APPS" - android.permission.SYSTEM_ALERT_WINDOW к манифесту, но не повезло.
PS: Я уверен, что проблема вызвана уведомлением. У меня нет установленных приложений, которые накладываются поверх других приложений, я даже отключил все приложения с разрешением "Нарисуйте другие приложения" в настройках. Не помогло..
Кто-нибудь знает решение этой проблемы?
![введите описание изображения здесь]()
Ответы
Ответ 1
В том обстоятельстве, с которым я столкнулся, я сам вызывал проблему. Это было результатом использования Toast
для отображения информации пользователю в то же время, когда я просил разрешения. Оба эти действия вместе вызывают такой тип ошибок.
Другие ответы могут решить проблему другого пользователя. Но я хотел бы отметить, что вы должны проявлять осторожность при возникновении собственных ошибок наложения. Будьте осторожны, накладывая что-то в представлении, одновременно запрашивая разрешение.
Ответ 2
Удалить приложение Clean Master. Я удалил его и проблема решена.
Ответ 3
Эта проблема возникает из-за какого-то преступного приложения, такого как Twilight, clean-master, drupe и т.д.
Чтобы решить эту проблему, вы должны отключить наложение экрана для этих злостных приложений.
У меня есть moto g4 plus, и вот как я решаю эту проблему
Перейдите в Настройка → Выбрать приложения --- > еще раз выберите значок настройки в Приложениях --- > выберите рисование над другими приложениями --- > и отключите приложения, виновные в других приложениях.
что я делаю, проверяя каждое приложение, отключив это разрешение и попробовав запустить мое приложение, и я нашел одно приложение в этом сложном наложении для других приложений, поэтому в конце я отключил только это приложение.
Скрины:
![выбрать настройку конфигурации]()
![отключить приложения для виновных]()
Ответ 4
Получите информацию от нескольких ответов здесь и на других форумах.
Консолидация того, как я избавился от проблемы:
- Перейдите в "Настройки" > "Приложения" > (ваше приложение становится проблемой).
- Нажмите кнопку "Питание" до включения питания, перезагрузки, режима полета.
- Удержание при выключении питания
- Выберите перезагрузку в безопасном режиме
- Перейдите в настройки > apps > (ваше приложение, которое становится проблемой)
- Выберите требуемые разрешения
- После обновления Android M проблемы могут возникать в приложениях, таких как Messenger, Whatsapp, Prisma и т.д.
Сообщите мне, если возникнут проблемы.
Примечание. У меня есть One plus One mobile.
Ответ 5
Я просто удалил свое приложение и отключил свой Nexus 6P. После его повторного включения я переустановил приложение и больше не получил диалоги "наложения экрана" при предоставлении разрешений приложения.
Ответ 6
Вы должны отключить оверлей для всех приложений, которые вы видите в списке. Только так вы можете изменить полномочия в нужном приложении.
Я сделал это в безопасном режиме, и это сработало.
В конце я перезагрузил телефон, и теперь он работает нормально.
Ответ 7
Я обновил свой Sony Xperia Z3 (Dual Sim) до Android 6.0.1 (Marsmallow). У меня были проблемы с экраном. Для меня у меня нет Clean Master, Du Speed или Du Booster (в качестве решений, которые я прочитал).
Итак, я решил, что я ищу любые приложения для наложения экрана.
Приложение для перекрытия экрана - это приложение, которое вы можете использовать для доступа к другим приложениям на главном главном экране, не выходя из главного экрана. Так что для меня приложение Overlay Screen здесь, в моей ситуации, было OMNI SWIPE. Поэтому, если вы столкнулись с этой проблемой, вам нужно успокоиться и проверить, какое из приложений подходит для определения приложения наложения экрана.
найдите приложение и удалите его, затем перезагрузите телефон.
Я только что закончил делать это и хорошо провожу время с телефоном
Лучшее из удачи
Ответ 8
Пока Android 6.x не работает на некоторых устройствах, где это "предупреждение о наложении" отображается без какой-либо причины (на 2-5% устройств в соответствии с моими данными аналитики), лучшим решением является избежать всего разрешить процесс, указав targetSdk на 22.
Позаботьтесь о том, чтобы вы не смогли понизить целевой файл sdk для новой версии, иначе это приведет к ошибке INSTALL_FAILED_PERMISSION_DOWNGRADE, когда пользователь будет обновлять, требуя unisntall/install приложения.
Ответ 9
решение
удалите сообщения Toast из метода onRequestPermissionsResult
Ответ 10
Это происходит, когда вы предоставили разрешение наложения вредоносным приложениям. Перейдите к настройкам наложения и отключите функцию наложения во всех приложениях, которые не принадлежат Google, и все будет в порядке.
Ответ 11
Это всплывающее окно вызвано декларацией manifest.PERMISSION.SYSTEM_ALERT_WINDOW, объявленной манифестом.
Это 3 категории разрешений, о которых должен знать разработчик:
Нормальное разрешение - ничего с ними не делать, просто объявить в Манифесте
Уязвимые разрешения - объявите в манифесте и запросите разрешение в первый раз. Их можно изменить через системные настройки.
Над опасными разрешениями: SYSTEM_ALERT_WINDOW и WRITE_SETTINGS относятся к этой категории. Они должны быть предоставлены, но не отображаются в настройках системы. Чтобы запросить его, вы не используете стандартный способ (int checkSelfPermission (разрешение String)), но вы должны проверить Settings.canDrawOverlays() или Settings.System.canWrite() соответствующим образом, и если вы этого не сделаете, вы получите исключение, например
Невозможно добавить окно [email protected] - разрешение отклонено для этого типа окна
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();
}
}
}
Ответ 12
У меня возникла проблема при установке нового приложения.
Способ, которым я столкнулся с этой проблемой, - это вручную разрешить разрешения для недавно установленного приложения (перед запуском приложения).
Я уверен, что это проблема с устройствами Android и Samsung в частности.
Надеюсь, что это поможет
Ответ 13
-
Удалите приложения, на которых есть экранное наложение, такое как защита CM, Clean Master и т.д.
-
При необходимости удалите и попробуйте с помощью Messenger (приложение FB).