Android 8.0 알림 표시줄 사용 권한 설정
우선, 우리는 적당한 시기에 우리 앱의 알림 표시줄 권한을 검사한다
boolean Jurisdiction = NotificationManagerCompat.from(AppApplication.getContext()).areNotificationsEnabled();
이 방법을 통해 우리는 우리 앱에 알림 표시줄의 전송 권한이 있는지 확인할 수 있다. 만약에 우리가 권한이 없다면 안내하는 방식으로 사용자에게 우리가 이런 권한이 필요하다는 것을 알려주고 설정하는 방식을 제공할 수 있다. 여기서 저는 제3자material-dialogs 소스 오픈 창 구조를 사용했다.마지막으로 탄창의 확인 감청에서 시스템 버전 번호에 따라 대응하는 방식으로 시스템 권한 관리 창을 팝업합니다.물론, 너도 너 자신의 탄창을 사용하여 사용자에게 알릴 수 있다
의존도는 다음과 같습니다.
api "com.afollestad.material-dialogs:core:0.9.4.5"
api "com.afollestad.material-dialogs:commons:0.9.4.5"
if (!NotificationManagerCompat.from(AppApplication.getContext()).areNotificationsEnabled()) {
MaterialDialog.Builder builder = new MaterialDialog.Builder(mContext)
.title(" ")
.positiveText(" ")
.negativeText(" ");
.onAny(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (which == DialogAction.NEUTRAL) {
Log.e("onClick", " : ");
} else if (which == DialogAction.POSITIVE) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", MainActivity.this.getPackageName());
intent.putExtra("app_uid", MainActivity.this.getApplicationInfo().uid);
startActivity(intent);
} else if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setData(Uri.parse("package:" + MainActivity.this.getPackageName()));
startActivity(intent);
} else {
Intent localIntent = new Intent();
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
localIntent.setData(Uri.fromParts("package", MainActivity.this.getPackageName(), null));
startActivity(localIntent);
}
Log.e("onClick", " : ");
} else if (which == DialogAction.NEGATIVE) {
Log.e("onClick", " : ");
}
}
}).show();
}
여기까지, 우리의 권한은 이미 오픈을 보장할 수 있습니다.Push 시작
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dialog에서 EditText가 키보드로 덮어쓰지 않도록 키보드가 입력 상자 아래에 계속 있습니다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.