欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 跳转到应用通知设置界面的示例

程序员文章站 2023-12-09 12:48:51
4.4以下并没有提过从app跳转到应用通知设置页面的action,可考虑跳转到应用详情页面,下面是直接跳转到应用通知设置的代码: if (android.os....

4.4以下并没有提过从app跳转到应用通知设置页面的action,可考虑跳转到应用详情页面,下面是直接跳转到应用通知设置的代码:

 if (android.os.build.version.sdk_int >= build.version_codes.lollipop) {
          intent intent = new intent();
          intent.setaction("android.settings.app_notification_settings");
          intent.putextra("app_package", getactivity().getpackagename());
          intent.putextra("app_uid", getactivity().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:" + getactivity().getpackagename()));
          startactivity(intent);
        }

跳转到应用详情页面的代码如下:

 intent localintent = new intent();
        localintent.addflags(intent.flag_activity_new_task);
        if (build.version.sdk_int >= 9) {
          localintent.setaction("android.settings.application_details_settings");
          localintent.setdata(uri.fromparts("package", getactivity().getpackagename(), null));
        } else if (build.version.sdk_int <= 8) {
          localintent.setaction(intent.action_view);
          localintent.setclassname("com.android.settings", "com.android.settings.installedappdetails");
          localintent.putextra("com.android.settings.applicationpkgname", getactivity().getpackagename());
        }
        startactivity(localintent);

对于检测app是否开启通知,同样是针对4.4以上的系统才有效:

notificationmanagercompat manager = notificationmanagercompat.from(app.getinstance().getcontext());
boolean isopened = manager.arenotificationsenabled();

4.4以下调用该方法并不会出错,只是全部返回true,默认开启状态

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。