精华内容
下载资源
问答
  • 如何关闭通知信息
    2021-06-03 06:02:44

    这次在实现推送需求的时候,要用到android通知栏Notification点击后进入消息页面,因为要实现一个保存推送用户名字的功能,我在点击后处理了这个功能,但是测试发现我点击删除或者滑动清除后这个功能并没有执行,所以才意识到要处理删除和滑动清除的事件:

    首先实现一个BroadcastReceiver

    public class NotificationBroadcastReceiver extends BroadcastReceiver {

    public static final String TYPE = "type"; //这个type是为了Notification更新信息的,这个不明白的朋友可以去搜搜,很多

    @Override

    public void onReceive(Context context, Intent intent) {

    String action = intent.getAction();

    int type = intent.getIntExtra(TYPE, -1);

    if (type != -1) {

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.cancel(type);

    }

    if (action.equals("notification_clicked")) {

    //处理点击事件

    }

    if (action.equals("notification_cancelled")) {

    //处理滑动清除和点击删除事件

    }

    }

    }

    而注册Notification是这样的:

    Intent intentClick = new Intent(this, NotificationBroadcastReceiver.class);

    intentClick.setAction("notification_clicked");

    intentClick.putExtra(NotificationBroadcastReceiver.TYPE, type);

    PendingIntent pendingIntentClick = PendingIntent.getBroadcast(this, 0, intentClick, PendingIntent.FLAG_ONE_SHOT);

    Intent intentCancel = new Intent(this, NotificationBroadcastReceiver.class);

    intentCancel.setAction("notification_cancelled");

    intentCancel.putExtra(NotificationBroadcastReceiver.TYPE, type);

    PendingIntent pendingIntentCancel = PendingIntent.getBroadcast(this, 0, intentCancel, PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)

    .setSmallIcon(R.drawable.ic_launcher)

    .setContentTitle(getString(R.string.setting_gcm_title))

    .setContentText(message)

    .setSound(defaultSoundUri)

    .setContentIntent(pendingIntentClick)

    .setDeleteIntent(pendingIntentCancel);

    notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(type /* ID of notification */, notificationBuilder.build());  //这就是那个type,相同的update,不同add

    当然不要忘了在AndroidManifest.xml里面注册

    这样就是初步实现了android通知栏Notification点击,取消,清除响应事件

    更多相关内容
  • 默认关闭应用的通知 路径: /frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) { prepareAppDataAfterInstallLIF...

    默认关闭应用的通知

    路径:
    /frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java

    if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) {
                    prepareAppDataAfterInstallLIF(newPackage);
                    //Add By LYZK
                    //"eu.chainfire.supersu"需要屏幕的APK包名
                    if("eu.chainfire.supersu".equals(pkgName))
                    {
                        disableAppNotification(pkgName);
                    }
                    //End Add
                    
                } else {
                    // Remove package from internal structures, but keep around any
                    // data that might have already existed
                    deletePackageLIF(pkgName, UserHandle.ALL, false, null,
                            PackageManager.DELETE_KEEP_DATA, res.removedInfo, true, null);
                }
            } catch (PackageManagerException e) {
                res.setError("Package couldn't be installed in " + pkg.codePath, e);
            }
    
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
        }
     //Add By LYZK
         private void disableAppNotification(String packageName){
            //NotificationManager mNotificationManager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            INotificationManager mNotificationManager = INotificationManager.Stub.asInterface(ServiceManager.getService(Context.NOTIFICATION_SERVICE));
            try {
                int uid = getPackageUid(packageName, 0, UserHandle.USER_SYSTEM);
                Slog.i("yu","-----------------disableAppNotification: " + packageName + ", uid = " + uid);
                mNotificationManager.setNotificationsEnabledForPackage(packageName, uid, false);
            } catch (Exception e) {
                Slog.e("yu", "--------------------disableAppNotification: " + e);
            }
        }
     //End Add
    
    展开全文
  • diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index c1f9843..76888b0 100755 ...
    diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
    index c1f9843..76888b0 100755
    --- a/services/core/java/com/android/server/pm/PackageManagerService.java
    +++ b/services/core/java/com/android/server/pm/PackageManagerService.java
    @@ -107,6 +107,7 @@ import android.app.ResourcesManager;
     import android.app.admin.IDevicePolicyManager;
     import android.app.admin.SecurityLog;
     import android.app.backup.IBackupManager;
    +import android.app.INotificationManager;
     import android.content.BroadcastReceiver;
     import android.content.ComponentName;
     import android.content.ContentResolver;
    @@ -14308,7 +14309,11 @@ public class PackageManagerService extends IPackageManager.Stub {
     
                 if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) {
                     prepareAppDataAfterInstallLIF(newPackage);
    -
    +                //Add by jackly for disable notification 2021.2.3
    +                if("com.google.android.youtube.tv".equals(pkgName) || "com.google.android.youtube".equals(pkgName)){
    +                    Slog.d("yu","-------New install pkg = " + pkgName);
    +                    disableAppNotification(pkgName);
    +                }
                 } else {
                     // Remove package from internal structures, but keep around any
                     // data that might have already existed
    @@ -14322,6 +14327,19 @@ public class PackageManagerService extends IPackageManager.Stub {
             Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
         }
     
    +    //Add by jackly 2020.2.3
    +    private void disableAppNotification(String packageName){
    +        //NotificationManager mNotificationManager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    +        INotificationManager mNotificationManager = INotificationManager.Stub.asInterface(ServiceManager.getService(Context.NOTIFICATION_SERVICE));
    +        try {
    +            int uid = getPackageUid(packageName, 0, UserHandle.USER_SYSTEM);
    +            Slog.i("yu","-----------------disableAppNotification: " + packageName + ", uid = " + uid);
    +            mNotificationManager.setNotificationsEnabledForPackage(packageName, uid, false);
    +        } catch (Exception e) {
    +            Slog.e("yu", "--------------------disableAppNotification: " + e);
    +        }
    +    }
    +

     

    展开全文
  • //好的 不再提示 neirong1(i){ const h = this.$createElement; //vue 中的渲染函数 ... that.notifyPromise = that.notifyPromise.then(that.$nextTick).then(function () { //防止通知叠加 let notify =that.$n
    //好的 不再提示
        neirong1(i){
              const h = this.$createElement;  //vue 中的渲染函数  createElement 参数
              var that = this;
              that.notifyPromise = that.notifyPromise.then(that.$nextTick).then(function () {  //防止通知叠加
              let notify =that.$notify({   
              title: that.msgNotify[i].title,
              customClass:'sss',    //给最外层div加class
              message: h('p', null, [          //消息中除了标题所有的dom写在[]中
                h('div', null, that.msgNotify[i].digest),
                  h('el-button', {
                    style: {
                      margin:'15px 5px 10px 100px',
                    },
                    attrs: {
                      size: 'mini',
                      type: 'primary'
                    },
                    on: {
                    click:function(){
                      console.log(that.msgNotify[i].id)
                      request({
                        url: '/sp/message/spBG/isRead',
                        method: 'get',
                        params:{id:that.msgNotify[i].id}
                      }).then(res => {
                        that.msgNotifyList[that.msgNotify[i].id].close() //关闭通知
                        if(that.msgNotify[i].isRead==0){
                          that.$store.state.user.num1--  
                        }
                      })
                      }
                    }
                  }, '好的'),
                  h('el-button', {
                    style: {
                      margin:'10px 5px',
                    //  float: 'right'
                    },
                    attrs: {
                      size: 'mini',
                      type: 'primary'
                    },
                    on: {
                    click:function(){
                      console.log(that.msgNotify[i].id)
                      request({
                        url: '/sp/message/spBG/isPopout',
                        method: 'get',
                        params:{id:that.msgNotify[i].id}
                      }).then(res => {
                        that.msgNotifyList[that.msgNotify[i].id].close()  //找到该id对应的某个notify关闭
                      })
                      }
                    }
                  }, '不再提示')
            ]),
            position: 'top-right',  //通知在页面的显示位置
            duration: 0, 
            offset: 20,
            dangerouslyUseHTMLString: true
            })
            that.msgNotifyList[that.msgNotify[i].id]=notify    //把每个通知都放进msgNotifyList中,例如{id:某个notify}
          })
        },
    

    防止通知重叠进行的异步操作

    展开全文
  • 本文主要介绍了Android开发消息通知栏的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
  • 如果您想回到安静的日子,因为它只提醒您有关关键事件的信息,则可以关闭这些增强的通知。 Windows Defender now lets you know every time your PC has been scanned, or a low-level threat has been quietly ...
  • 下面电脑百事网教大家如何关闭通知功能,并且我们还可以这个图标隐藏掉,一起来看看如何设置吧。Win10新通知怎么关闭第一步:依次点击Win10菜单图标,点击进入“设置”,然后再点击进入“系统”设置,如图。第二步...
  • 那是Android手机通知设置没弄好!在Android系统手机的设置内容中,“通知”是最容易被我们忽略的选项。实际上,如果你每天休息时都会被各种推送提醒打扰,又或是经常错过微信、邮箱、闲鱼等APP的重要消息,都能通过...
  • 如何在Apple Watch上关闭应用程序通知 (How to Turn Off App Notifications on Apple Watch) Starting with watchOS 5, Apple Watch gained the ability to quiet and disable notifications right from the ...
  • 更新通知包含有关已更改值的信息。 向进行更新的用户发送问题更新的电子邮件通知。 可以在插件配置中将条件指定为布尔 groovy 表达式。 已更新的 JIRA 问题对象(作为issue )和问题字段名称到更改的Map (作为...
  • 先说场景,公司在app上集成推送功能,可是在OPPO手机上一直接收不到推送消息,debug一下发现推送消息可以接受到但是没有吊起通知栏。去设置一看通知栏没给权限。又去oppo开放平台咨询,oppo官方回答如下 咋办呢。。...
  • 相信很多朋友都跟我一样,在使用安卓手机时,遇到这样一个十分令人烦躁的问题:通知栏经常会弹出一堆无用的通知。有些自带的APP从来没用过,但各种通知推送从来没断过。而且每次清除后,过不了多长时间通知栏又是一...
  • 拿了个安卓手机,设置-通知-关闭允许使用通知圆点,微信右上角不再有小圆点了,但是电话短信仍然有,这是为什么,是要app内部实现什么权限吗
  • 语音通知 通知(小吃栏)Vue组件。 与Vue 2.x兼容演示版要在线观看演示: : 安装npm install @mathieustan/vue-notification --save 或者yarn add @mathieustan/vue-notification import VueNotification from '@...
  • 据说部分网友oppo手机升级后会出现耗电多,系统运行不稳定,上不了4G的情况...依次打开-设置-通知与状态栏-通知管理-找到“设置”,点开后关闭允许项。然后返回,设置图标右上角的红1已经被关闭了。终止下载,并删除...
  • 那么,如果关闭通知栏消息权限,会影响 NotificationManagerService 队列的逻辑处理过程,导致不能通知 TN 显示出视图。 通过上面的分析,我们可以绕过 NotificationManagerService ,我们自己维护一个toast...
  • 如何关闭mcafee软件McAfee, like most other modern antivirus programs, doesn’t stay out of your way. It installs browser extensions and shows various alert messages you might not want to see. If McAfee...
  • 关闭edge通知With the new Microsoft Edge, extensions, apps, and other services can continue to run in the background even after you close the browser. This means that Edge will continue to use your ...
  • 有几种方法可以关闭来自 Twitter 的电子邮件通知。最简单的方法是通过 Twitter 移动应用程序更改您的设置。您还可以更改网站上的通知设置或向客户支持发送请求。如果您无法使用这些方法关闭电子邮件通知,您可以随时...
  • 关闭订阅通知 每次登陆都有订阅通知,使用不方便,直接关掉 打开配置文件 proxmoxlib.js vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js 搜索关键字 data.status /data.status 找到 if...
  • Windows 10怎么彻底关闭消息通知

    千次阅读 2017-08-15 11:43:00
    可能很多Win10用户都知道,可以在“设置-系统-通知和操作”中将各种通知选项关闭掉,但是该方法不够彻底,对于一些系统安全方面的通知并不奏效,该来的通知照样来,还是会影响大家手头的工作。下面小编将给大家分享...
  • 此模块旨在通过各种传递渠道发送简短的信息性消息,这些信息将用户在您的应用程序中发生的事情通知用户。 例如,如果您正在编写计费应用程序,则可以通过电子邮件和SMS通道向您的用户发送“已付款的发票”通知。 ...
  • 安卓通知使用 android 通知而不是 toast 安卓通知系统Android toast 是一个很棒的组件,但我感觉到的问题是,它会在持续时间之后消失,如果用户需要不惜一切代价查看信息,那么 toast 并不是开始的好方法。...
  • iOS推送通知关闭

    千次阅读 2018-12-27 14:12:40
     message:@"未开启通知,会错过很多重要信息。请到【设置】中开启"  delegate:self  cancelButtonTitle:nil  otherButtonTitles:@"确定", nil];    alert.tag = 111;    [alert show];...
  • 只是一般用户不会怎么注意,开发人员也不会很在意APP的通知开关,因为GOOGLE还没有在通知上大做文章,进入到APP信息中,通知的开关也不是很起眼。但是8.0上针对通知部分(主要针对下拉通知)做了较大修改,其中牵连...
  • 通知栏声音提示并显示,点击可跳转到需要页,并可取消通知信息
  • 页面变化通知-crx插件

    2021-03-15 18:46:09
    页面自定义区域变化通知,当页面内容发生变化,将以手机短信,邮件或通过我们的手机客户端推送的形式通知您, 手机客户端安装地址: http://citsm.sinaapp.com/client.php 使用方法: 点击图标,移动鼠标到您页面中感...
  • 一直是iPhone和华为(Mate 8)两个手机同时使用,华为动不动会跳出来“云存储空间即将用满”,华为天际通之类的通知,其实对我来说完全没需求,但是发现并不能通过 设置——通知和状态栏——通知管理 来屏蔽(因为...
  • 当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知,所以需要要么跳转至设置界面设置,要么自定义消息通知。 效果图 方法一:跳转到应用程序设置界面...
  • 这个项目是关于使用BoltIOT套件制作智能系统,当阳光强度增加或减少时,该组件会通过SMS自动(通过系统发送)将通知发送给房屋所有人,因此他们可以轻松地用手机打开/关闭房屋的外侧灯。 如果打开/关闭灯有任何延迟...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 287,844
精华内容 115,137
关键字:

如何关闭通知信息