IT박스

매니페스트의 권한이 Android 6에서 작동하지 않습니다.

itboxs 2020. 11. 11. 08:23
반응형

매니페스트의 권한이 Android 6에서 작동하지 않습니다.


다음을 완전히 무시합니다.

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

그래서 예외가 있습니다.

원인 : android.view.WindowManager $ BadTokenException : 창을 추가 할 수 없음 android.view.ViewRootImpl$W@86fb55b-이 창 유형에 대한 권한이 거부되었습니다.

나열되지도 않았습니다.

여기에 이미지 설명 입력

어떻게 수정해야합니까? 감사.

편집하다:

앱 구성 / 고급 / 다른 앱 위에 그리기에 나열됩니다. 그래서 나는 그것을 켜고 이제 잘 작동하지만 내 앱을 실행할 때 권한을 묻는 대화 상자가없는 이유는 무엇입니까? 모든 권한이 청각 장애인에 의해 해제되었으며 설정으로 이동하여 수동으로 설정해야합니까?


CommonsWare의 블로그 게시물 덕분에 몇 가지 단서를 얻었습니다.

코드가 Activity또는에 있다고 가정 Fragment하고 오버레이 권한을 확인하고 필요한 경우 요청합니다.

public static int OVERLAY_PERMISSION_REQ_CODE = 1234;

public void someMethod() {
    if (!Settings.canDrawOverlays(this)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
    }
}

그런 다음 더 나은 UX에 대한 권한을 다시 확인하십시오.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {
        if (!Settings.canDrawOverlays(this)) {
            // SYSTEM_ALERT_WINDOW permission not granted...
        }
    }
}

참고 URL : https://stackoverflow.com/questions/32061934/permission-from-manifest-doesnt-work-in-android-6

반응형