Android Service 에서 팝 업 대화 상 자 를 구현 하 는 구 덩이 를 분석 합 니 다.
M 버 전 이상 사용 할 Type-->TYPEAPPLICATION_OVERLAY
AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext());
builder.setTitle(" ");
builder.setMessage("service ");
builder.setNegativeButton(" ",null);
Dialog dialog=builder.create();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){//6.0
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
}else {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}
dialog.show();
동시에 서로 다른 버 전의 안 드 로 이 드 시스템 과 관련 되 기 때문에AndroidManifest.xml 에서 이 두 가지 유형 에 대응 하 는 권한 이 필요 하 다 고 밝 혔 습 니 다.
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
2.권한 문제,service 에서 나타 나 는 대화 상 자 는 시스템 탄 상자 이 며,M 버 전 이상 에 서 는 부상 창 권한 을 신청 해 야 합 니 다.Android 6.0 이전 부유 창 은 기본적으로 허용 되 었 습 니 다.
Android 6.0 이후 사용 주의
부상 창 권한
SYSTEM_ALERT_WINDOW
특수 권한 에 속 하기 때문에 자신 이 특별히 단독으로 신청 해 야 합 니 다.특수 권한 은 말 그대로 매우 민감 한 권한 입 니 다.안 드 로 이 드 시스템 에서 주로 두 가지 가 있 습 니 다.
SYSTEM_ALERT_WINDOW(부상 창 을 설치 하고 블랙 테 크 놀 로 지 를 진행 합 니 다)
WRITE_설정(시스템 설정 수정)
위의 두 가지 특수 권한 에 대한 권한 수여 방법 은 startActivity ForResult 를 사용 하여 권한 수여 인터페이스 를 시작 하 는 것 입 니 다.
신청 방법:
private static final int REQUEST_CODE = 1;
private void requestAlertWindowPermission() {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.canDrawOverlays(this)) {
Log.i("xqxinfo", "onActivityResult granted");
}
}
}
}
총결산안 드 로 이 드 서비스 에서 팝 업 대화 상 자 를 실현 하 는 구덩이 에 대한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 서비스 가 팝 업 대화 상 자 를 실현 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.