투케이2K

203. (AndroidStudio/android/java) 애플리케이션 알림 활성 , 비활성 확인 및 알림 설정창 인텐트 이동 실시 - app notification intent 본문

Android

203. (AndroidStudio/android/java) 애플리케이션 알림 활성 , 비활성 확인 및 알림 설정창 인텐트 이동 실시 - app notification intent

투케이2K 2021. 10. 5. 19:18

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java


[소스 코드]

	/** ============ [애플리케이션 노티피케이션 알림 설정 창 이동 메소드] ============ **/
	public void getIntentNotificationSetting(){
		//TODO [애플리케이션 알림 설정 활성 및 비활성 확인 실시]
		boolean isNotificationEnable = NotificationManagerCompat.from(getApplication()).areNotificationsEnabled();
		Log.d("---","---");
		Log.w("//===========//","================================================");
		Log.d("","\n"+"[A_AA_Test_Java > getIntentNotificationSetting() 메소드 : 노티피케이션 알림 활성 및 비활성 확인]");
		Log.d("","\n"+"[상태 : "+String.valueOf(isNotificationEnable)+"]");
		Log.w("//===========//","================================================");
		Log.d("---","---");

		Intent intent = null; //TODO [초기 인텐트 변수 선언]
		try {
			if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ //TODO [OS 가 오레오 이상인 경우]
				Log.d("---","---");
				Log.w("//===========//","================================================");
				Log.d("","\n"+"[A_AA_Test_Java > getIntentNotificationSetting() 메소드 : 노티피케이션 알림 설정창 이동]");
				Log.d("","\n"+"[버전 : 오레오 이상]");
				Log.w("//===========//","================================================");
				Log.d("---","---");
				intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
				intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName());
			}
			else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ){ //TODO [OS 가 롤리팝 이상인 경우]
				Log.d("---","---");
				Log.e("//===========//","================================================");
				Log.d("","\n"+"[A_AA_Test_Java > getIntentNotificationSetting() 메소드 : 노티피케이션 알림 설정창 이동]");
				Log.d("","\n"+"[버전 : 롤리팝 이상]");
				Log.e("//===========//","================================================");
				Log.d("---","---");
				intent = new Intent("android.settings.APP_NOTIFICATION_SETTINGS");
				intent.putExtra("app_package", getPackageName());
				intent.putExtra("app_uid", getApplicationInfo().uid);
			}
			else {
				Log.d("---","---");
				Log.e("//===========//","================================================");
				Log.d("","\n"+"[A_AA_Test_Java > getIntentNotificationSetting() 메소드 : 노티피케이션 알림 설정창 이동]");
				Log.d("","\n"+"[버전 : 롤리팝 미만]");
				Log.e("//===========//","================================================");
				Log.d("---","---");
				intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
				intent.addCategory(Intent.CATEGORY_DEFAULT);
				intent.setData(Uri.parse("package:" + String.valueOf(getPackageName())));
			}
			intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
			startActivity(intent);
			overridePendingTransition(0, 0);
		}
		catch (Exception e){
			e.printStackTrace();
		}
	}

[결과 출력]


 

반응형
Comments