화웨이 안드로이드 8.0 이상 플로팅 창 권한 올바르게 켜기
1524 단어 개발 문제
개발 중android 8.0에서 플로팅 창 권한이 열려 있는지 판단하는 문제에 부딪혔습니다. 한 인터페이스에서 다이어로그가 뜨면 플로팅 창 권한이 열려 있음을 알립니다. 사용자가 클릭한 후에 설정 인터페이스로 돌아가서 플로팅 창 권한을 열고 이 페이지, Settings로 돌아갑니다.candrawOverlays(context)가 권한을 열어 판단한 결과 false가 되돌아왔다.프로그램이 받은 권한은 열리지 않았지만 설정에서 확인한 결과 열렸습니다.그리고 인터페이스에 리셋 작업이 있는 후(다른 인터페이스로 가기, 종료 재진입, 버튼 클릭 등) 권한이 있음을 감지하면 오픈됩니다.그러나 인터페이스에서 설정으로 이동하고 권한을 열면 인터페이스로 돌아가서 Settings를 호출합니다.candrawOverlays(context) 메서드는 열려 있지 않은 것으로 판단합니다.머리가 어지러워서 인터넷에서 자료를 한 무더기 찾았는데 효과가 없어서 결국 무심결에 코드를 한 줄 주석을 달았어요.
// intent.setData(Uri.parse("package:" + getPackageName()));
결과적으로 모든 것이 정상으로 돌아왔다. 나는
전체 코드는 다음과 같습니다.
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
//
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jsp: the code is exceeding the 65535 bytes limitjsp: the code is exceeding the 65535 bytes limit 웹에서.xml에 다음과 같이 추가하면 해결됩니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.