Mam Androida Marshmallow na Nexusie 6. Próbuję rozwiązać następujący problem:
Jeśli użytkownik próbuje udzielić pozwolenia, gdy wyświetlane jest powiadomienie, zostanie wyświetlony komunikat „Wykryto nakładkę ekranu”, a okno dialogowe Poproś o pozwolenie znika - oczywiście aplikacja nie uzyska żądanego pozwolenia. (Sprawdź zrzut ekranu)
Próbowałem rozwiązać ten problem, dodając uprawnienie „DRAW OVER OTHER APPS” - android.permission.SYSTEM_ALERT_WINDOW do manifestu, ale bez powodzenia.
PS: Jestem pewien, że problem jest spowodowany powiadomieniem. Nie mam zainstalowanej żadnej aplikacji, która nakładałaby się na inne aplikacje. Wyłączyłem nawet wszystkie aplikacje z uprawnieniem „Rysuj na innych aplikacjach” w ustawieniach. Nie pomogło..
Czy ktoś zna rozwiązanie tego problemu?
źródło
Odpowiedzi:
W sytuacji, na którą się natknąłem, sam powodowałem problem. Wynikało to z użycia a
Toast
do wyświetlenia informacji użytkownikowi w tym samym czasie, gdy prosiłem o pozwolenie. Obie te czynności razem powodują tego typu błąd.Inne odpowiedzi mogą rozwiązać problem innej osoby. Chciałem jednak zauważyć, że należy zachować ostrożność podczas tworzenia własnych błędów nakładek. Uważaj, aby nałożyć coś w widoku, jednocześnie prosząc o pozwolenie.
źródło
Toast
do debugowania. Może to być również główny powód, dla którego ludzie to mają.Toast to display information to the user at the same time that I was asking for permission
Odinstaluj aplikację Clean Master. Odinstalowałem go i problem został rozwiązany
źródło
Facebook Messenger
potrzeby odinstalowywania, wystarczy wymusić zatrzymanie.Ten problem pojawia się z powodu niektórych aplikacji winnych, takich jak Twilight, cleaner-master, drupe itp.
Aby rozwiązać ten problem, musisz wyłączyć nakładkę ekranu dla tych aplikacji sprawców.
mam moto g4 plus i tak rozwiązuję ten problem
Idź do Ustawienia -> Wybierz aplikacje ---> ponownie wybierz ikonę ustawień w Aplikacjach ---> wybierz rysowanie nad innymi aplikacjami ---> i wyłącz aplikacje winowajców, które mają problemy z innymi aplikacjami.
To, co zrobiłem, to sprawdzenie każdej aplikacji, wyłączając to uprawnienie i próbując uruchomić moją aplikację, i znalazłem jedną aplikację z tą kłopotliwą nakładką dla innych aplikacji, więc na koniec wyłączyłem tylko tę aplikację.
Zrzuty ekranu:
źródło
Mam spostrzeżenia z wielu odpowiedzi tutaj i innych forów.
Konsolidacja, jak pozbyłem się problemu:
Daj mi znać, jeśli masz jakieś problemy.
Uwaga: mam telefon komórkowy One plus One.
źródło
Właśnie usunąłem aplikację i wyłączyłem Nexusa 6P. Po ponownym włączeniu ponownie zainstalowałem aplikację i nie wyświetlały się już okna dialogowe „nakładki ekranu” podczas nadawania aplikacji uprawnień.
źródło
To wyskakujące okienko jest spowodowane przez uprawnienie manifest.PERMISSION.SYSTEM_ALERT_WINDOW zadeklarowane w manifeście.
Istnieją 3 kategorie uprawnień, o których deweloper musi wiedzieć:
Normalne pozwolenie - nic z nimi nie rób, po prostu zadeklaruj w Manifeście
Uprawnienia podatne na atak - zadeklaruj w Manifest i poproś o pozwolenie za pierwszym razem. Można je zmienić w ustawieniach systemu.
Powyższe niebezpieczne uprawnienia: SYSTEM_ALERT_WINDOW i WRITE_SETTINGS należą do tej kategorii. Muszą być przyznane, ale nie są widoczne w ustawieniach systemu. Aby o to poprosić, nie używasz standardowego sposobu (int checkSelfPermission (uprawnienie String)), ale musisz odpowiednio sprawdzić Settings.canDrawOverlays () lub Settings.System.canWrite (), a jeśli tego nie zrobisz, otrzymasz wyjątek, taki jak
1-Poproś o to pozwolenie samodzielnie w swoim kodzie, tak jak podano poniżej:
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(); } } }
źródło
Musisz wyłączyć nakładkę dla wszystkich aplikacji, które widzisz na liście. Tylko w ten sposób możesz modyfikować uprawnienia w aplikacji, której potrzebujesz. Zrobiłem to w trybie awaryjnym i zadziałało. Na koniec zrestartowałem telefon i teraz działa dobrze.
źródło
Zaktualizowałem moją Sony Xperię Z3 (Dual Sim) do Androida 6.0.1 (Marsmallow). Mam problemy z nakładkami na ekranie. U mnie nie mam Clean Master, Du Speed ani Du Booster (tak jak rozwiązania, które przeczytałem).
Więc rozwiązałem mój, szukając aplikacji do nakładania ekranu.
Aplikacja nakładająca się na ekran to aplikacja, za pomocą której można uzyskać dostęp do innych aplikacji na głównym ekranie głównym bez opuszczania ekranu głównego. Dla mnie aplikacja Screen Overlay w mojej sytuacji była OMNI SWIPE . Jeśli więc napotykasz ten problem, musisz się uspokoić i sprawdzić, która aplikacja pasuje do definicji aplikacji do nakładania ekranu.
znajdź aplikację i odinstaluj, a następnie uruchom ponownie telefon.
Właśnie skończyłem to robić i dobrze się bawię przy telefonie
Powodzenia
źródło
Dopóki Android 6.x jest wadliwy na niektórych urządzeniach, na których ten „alert nakładki” jest wyświetlany bez żadnego powodu (na 2 do 5% urządzeń według moich danych analitycznych), najlepszym rozwiązaniem jest uniknięcie całego procesu uzyskiwania uprawnień przez definiowanie targetSdk do 22.
Uważaj, aby nie można było obniżyć wersji docelowego zestawu SDK do nowej wersji, ponieważ spowoduje to błąd INSTALL_FAILED_PERMISSION_DOWNGRADE, gdy aktualizacje użytkownika wymagają odinstalowania / zainstalowania aplikacji.
źródło
rozwiązaniem jest
usuń wiadomości Toast z metody onRequestPermissionsResult
źródło
Dzieje się tak, gdy zezwolisz na nakładanie złośliwych aplikacji. Przejdź do ustawień nakładki i wyłącz funkcję nakładki we wszystkich aplikacjach, które nie należą do Google, a będziesz gotowy.
źródło
Mam ten problem podczas instalowania nowej aplikacji. Sposobem na obejście tego problemu jest ręczne włączenie uprawnień dla nowo zainstalowanej aplikacji (przed uruchomieniem aplikacji). Jestem prawie pewien, że jest to problem w szczególności z urządzeniami z Androidem i Samsungami. Mam nadzieję że to pomoże
źródło
Usuń aplikacje z nakładką ekranu, takie jak zabezpieczenia CM, Clean Master itp.
W razie potrzeby usuń nawet i wypróbuj komunikator (aplikacja FB).
źródło