백그라운드 앱이 실행 중이거나 오버레이가 표시될 때 표시되는 Android O의 지속적인 알림을 숨기는 방법에 대한 튜토리얼입니다.
업데이트 8/25/17: Google이 백그라운드에서 지속적인 알림을 숨기는 데 사용하는 방법을 패치했기 때문에 이 튜토리얼은 이제 더 이상 사용되지 않습니다. 그러나 우리는 이 문제에 대한 또 다른 해결 방법을 발견했으며 이에 대한 간단한 튜토리얼을 작성했습니다. 여기서 찾을 수 있어요.
Android O는 우리 모두가 알고 사랑하는 Android OS에 주요 개선 사항을 제공하려고 합니다. 휴대폰용 PIP(Picture-in-Picture) 모드, 알림 채널, 스마트 텍스트 선택, 자동 완성 서비스 및 내부적으로는 배터리 수명, 성능 및 보안을 향상시키기 위한 수많은 변경 사항이 있습니다. 사용자가 배터리 수명 및 성능 문제를 해결하는 데 도움이 되는 기능 중 하나는 백그라운드 프로세스 제한입니다. 너무 자세히 설명하지 않으면 Android O의 앱은 등록된 매니페스트에서 더 이상 깨어날 수 없습니다. 암시적 브로드캐스트 수신기를 거치지 않고는 더 이상 백그라운드 서비스를 시작할 수 없습니다. JobScheduler. 앱이 백그라운드 서비스를 시작하려는 경우 알림을 게시하여 사용자에게 명시적으로 알려야 합니다. 그러나 앱이 백그라운드에서 실행 중일 때 Android O는 이제 겉보기에 다른 작업을 수행하는 것처럼 보입니다. 또 다른 어떤 앱이 실행 중인지 알려주는 지속적인 알림입니다. 이는 다음과 같은 앱이 있는 경우에도 발생합니다. SYSTEM_ALERT_WINDOW 허가(예: 인기 있는 어스름 앱)은 현재 오버레이를 표시하고 있습니다.
이러한 알림은 기본적으로 최소화되어 있지만 사용자가 취소하거나 설정에서 영구적으로 차단할 수는 없습니다. 이 동작은 많은 사용자에게 매우 짜증나는 일이므로 Google이 최종 Android O/Android 8.0 릴리스에서 이 알림을 비활성화할 수 있는 방법을 제공하기를 진심으로 바랍니다. 그러나 그렇지 않은 경우에는
~이다 아직 갈 길이 멀다 지속적인 백그라운드 앱 알림을 영구적으로 숨기기. 단계별 가이드를 통해 이를 수행하는 방법을 보여주고, 이어서 작동 방식에 대한 설명과 중요한 주의사항을 설명하겠습니다.요구사항:
- 안드로이드 O
- Windows를 사용하는 경우 특정 휴대폰에 대한 USB 드라이버를 설치합니다(찾을 수 있음). 여기).
- 다운로드 ADB 바이너리 특정 운영 체제(윈도우, 맥, 리눅스). 이러한 링크는 항상 최신 버전의 바이너리를 가리키므로 최신 버전을 찾기 위해 인터넷을 뒤질 필요가 없습니다.
- 다운로드한 ZIP 파일의 내용을 PC에서 쉽게 액세스할 수 있는 폴더(예: 다운로드 폴더)에 추출합니다.
- 휴대폰의 설정 앱으로 이동하여 "휴대폰 정보" 옵션을 탭하세요.
- 빌드 번호를 찾아 7번 탭하면 개발자 모드가 활성화됩니다. 활성화되면 팝업이 표시됩니다.
- 설정 메인 메뉴로 돌아가서 개발자 옵션에 들어가서 USB 디버깅 모드를 활성화하세요.
- 휴대폰을 PC에 연결하고 알림 패널을 아래로 스와이프하여 USB 모드를 "충전 전용"에서 "파일 전송(MTP)" 모드로 변경합니다. 귀하의 전화기에는 이것이 필요하지 않을 수도 있습니다.
- PC에서 ADB 바이너리를 추출한 디렉터리로 이동합니다.
- 이 ADB 디렉터리에서 명령 프롬프트/터미널을 실행합니다. Windows 사용자의 경우 Shift+마우스 오른쪽 버튼을 클릭한 다음 "여기에서 명령 프롬프트 열기" 옵션을 선택하여 이 작업을 수행할 수 있습니다.
- 명령 프롬프트 또는 터미널 환경에 있으면 다음 명령을 입력하십시오.
adb devices
- 그러면 ADB 데몬이 시작됩니다. ADB를 처음 실행하는 경우 휴대폰에 연결 승인을 요청하는 메시지도 표시됩니다.
- 이제 10단계의 adb devices 명령을 다시 실행하면 명령 프롬프트/터미널에 장치의 일련 번호가 인쇄됩니다. 그렇다면 계속 진행할 준비가 된 것입니다. 그렇지 않으면 USB 드라이버가 제대로 설치되지 않았을 가능성이 높습니다.
- 명령 프롬프트로 돌아가서 다음 명령을 입력합니다.
adb shell
- 이제 다음 명령을 실행하십시오.
cmd appops set android POST_NOTIFICATION ignore
- 성공 메시지나 기타 어떤 것도 받지 못하지만 오류가 표시되지 않는 한 제대로 작동했을 것입니다. 이제 휴대폰을 재부팅하면 됩니다!
예, 스크린샷이 아닌 휴대폰 화면 사진이라는 것을 알고 있습니다. 저는 안드로이드 O 호환 기기가 없어서 TK에게 이미지를 보내달라고 요청했습니다.
- 이 명령을 되돌리려면 명령 프롬프트에 다음을 입력하십시오.
cmd appops set android POST_NOTIFICATION allow
작동 원리
Android의 사용자 대상 권한 관리 시스템인 App Ops의 숨겨진 명령줄 인터페이스를 사용하여 "android" 패키지에서 POST_NOTIFICATION 권한을 제한할 수 있습니다. (참고: "거부"로 인해 일부 오류가 발생할 수 있으므로 "거부" 대신 "무시"로 설정했습니다.) 관련 소스 코드를 보고 이 권한을 찾았습니다. 앱운영관리자에는 부여/취소할 수 있는 모든 권한이 나열되어 있으며, 그 중 대부분은 Android 설정에서 액세스할 수 없습니다. "android" 패키지는 실제로 "Android 시스템"(AKA Framework-res.apk)을 참조하며, 이는 우리가 제거하려는 지속적인 알림을 담당합니다.
본질적으로 Android 시스템의 POST_NOTIFICATION 권한을 취소하면 더 이상 알림을 표시할 수 없습니다! 꽤 간단하게 들리죠? 불행히도, 주의해야 할 사항이 있습니다. 'Android 시스템'은 이 알림 이상의 역할을 담당하므로 게시될 수 있는 다른 알림은 더 이상 표시되지 않습니다. 여기에는 USB 모드 알림(개발자 옵션의 설정을 통해 변경할 수 있음)과 기타 사항이 포함될 수 있습니다.
이는 우리 측에서 취할 수 있는 매우 과감한 조치이지만 현재로서는 이 알림을 숨길 수 있는 유일한 방법입니다. 전화기를 루팅하고 프레임워크 자체를 수정하는 것은 분명히 많은 사용자가 의향하거나 할 수 없는 일입니다. 할 것. 저는 Google이 Android O의 향후 릴리스에서 이 알림을 숨길 수 있는 방법을 제공하거나 이 알림을 완전히 제거하는 방법을 제공하기를 진심으로 바랍니다. Google은 앱이 백그라운드에서 실행 중일 때 사용자에게 이를 알려 사용자 환경을 개선하고자 합니다. 사용자는 인식하지 못할 수도 있지만, 각 앱에 대해 알고 있는 우리에게는 그들이 선택한 방법이 짜증스럽습니다. 사용.