Develop

[android] 버전 별 앱 알림 설정으로 이동하는 방법

by hooni posted Nov 28, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

android.jpg



# 내가 썼던 방법

if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.KITKAT) {
    Intent intent = new Intent();
    intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    //intent.setData(Uri.parse("package:" + getPackageName()));
    intent.putExtra("app_package", getPackageName());
    intent.putExtra("app_uid", getApplicationInfo().uid);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}else{
    String packageName = "com.ncsoft.nccomix";
    String SCHEME = "package";
    String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName";
    String APP_PKG_NAME_22 = "pkg";
    String APP_DETAILS_PACKAGE_NAME = "com.android.settings";
    String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails";
    Intent intent = new Intent();
    final int apiLevel = Build.VERSION.SDK_INT;
    if (apiLevel >= 9) { // above 2.3
        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        Uri uri = Uri.fromParts(SCHEME, packageName, null);
        intent.setData(uri);
    } else { // below 2.3
        final String appPkgName = (apiLevel == 8 ? APP_PKG_NAME_22 : APP_PKG_NAME_21);
        intent.setAction(Intent.ACTION_VIEW);
        intent.setClassName(APP_DETAILS_PACKAGE_NAME,
APP_DETAILS_CLASS_NAME);
        intent.putExtra(appPkgName, packageName);
    }
    startActivity(intent);
}


# 참고할 방법 (해보지는 않음 ㅋㅋ)

packageName = "your.package.name.here"

try {
    //Open the specific App Info page:
    Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    intent.setData(Uri.parse("package:" + packageName));
    startActivity(intent);

} catch ( ActivityNotFoundException e ) {
    //e.printStackTrace();

    //Open the generic Apps page:
    Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
    startActivity(intent);

}


[참고] http://www.makeuseof.com/tag/stop-annoying-notifications-android/

[참고] http://stackoverflow.com/questions/4421527/how-can-i-start-android-application-info-screen-programmatically