화웨이 안드로이드 8.0 이상 플로팅 창 권한 올바르게 켜기

1524 단어 개발 문제
플로팅 창 권한 요약
개발 중android 8.0에서 플로팅 창 권한이 열려 있는지 판단하는 문제에 부딪혔습니다. 한 인터페이스에서 다이어로그가 뜨면 플로팅 창 권한이 열려 있음을 알립니다. 사용자가 클릭한 후에 설정 인터페이스로 돌아가서 플로팅 창 권한을 열고 이 페이지, Settings로 돌아갑니다.candrawOverlays(context)가 권한을 열어 판단한 결과 false가 되돌아왔다.프로그램이 받은 권한은 열리지 않았지만 설정에서 확인한 결과 열렸습니다.그리고 인터페이스에 리셋 작업이 있는 후(다른 인터페이스로 가기, 종료 재진입, 버튼 클릭 등) 권한이 있음을 감지하면 오픈됩니다.그러나 인터페이스에서 설정으로 이동하고 권한을 열면 인터페이스로 돌아가서 Settings를 호출합니다.candrawOverlays(context) 메서드는 열려 있지 않은 것으로 판단합니다.머리가 어지러워서 인터넷에서 자료를 한 무더기 찾았는데 효과가 없어서 결국 무심결에 코드를 한 줄 주석을 달았어요.
 // intent.setData(Uri.parse("package:" + getPackageName()));

결과적으로 모든 것이 정상으로 돌아왔다. 나는 , 8.0 이상의 휴대전화는 구덩이야!다시 한 번 기록해 주십시오. 저와 같은 문제를 겪는 사람에게 도움이 되었으면 합니다.
전체 코드는 다음과 같습니다.
    private void requestSettingCanDrawOverlays() {
        Toast.makeText(SplashActivity.this, "          !", Toast.LENGTH_LONG).show();
        int sdkInt = Build.VERSION.SDK_INT;
        if (sdkInt >= Build.VERSION_CODES.O) {//8.0  
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
            startActivityForResult(intent, REQUEST_DIALOG_PERMISSION);
        } else if (sdkInt >= Build.VERSION_CODES.M) {//6.0-8.0
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
            intent.setData(Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, REQUEST_DIALOG_PERMISSION);
        } else {//4.4-6.0  
            //     
        }
    }

좋은 웹페이지 즐겨찾기