精华内容
下载资源
问答
  • import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; i
    import android.app.Activity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
    
    	private NotificationManager nm;
    	private Button btnCancel;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		btnCancel = (Button) findViewById(R.id.cancel);
    		String service = Context.NOTIFICATION_SERVICE;
    		nm = (NotificationManager) getSystemService(service); // get system
    		Context context = MainActivity.this;
    		Notification n = new Notification();
    		n.icon = R.drawable.ic_launcher;
    		n.tickerText = "test";
    		n.when = System.currentTimeMillis();
    		
    		//如果不想被清理加上下面这两行代码的任何一行都可以
    		n.flags |= Notification.FLAG_NO_CLEAR;
    		// n.flags=Notification.FLAG_ONGOING_EVENT;
    		
    		
    		Intent intent = new Intent(context, MainActivity.class);
    		PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0);
    		n.setLatestEventInfo(context, "test_title", "test_content", pi);
    		nm.notify(1, n);
    
    		btnCancel.setOnClickListener(new OnClickListener() {
    
    			public void onClick(View v) {
    				nm.cancel(1);
    			}
    		});
    	}
    
    }

    展开全文
  • android实现通知栏消息

    2014-06-25 12:05:00
    一、原理消息推送有两种,一种是客户端定时直接到服务器搜索消息,如果发现有新的消息,就获取消息下来;另一种是服务器向客户端...NotificationMangager //状态栏通知管理类、负责发消息、清理消息。import andr...

    一、原理 
    消息推送有两种,一种是客户端定时直接到服务器搜索消息,如果发现有新的消息,就获取消息下来;另一种是服务器向客户端发送消息,也就是当有信息消息时,服务器端就会向客户端发送消息。

    二、步骤(代码)

    注: Notification //是具体状态栏对象,设置Icon、文字、声音等。
    NotificationMangager //状态栏通知管理类、负责发消息、清理消息。


    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.app.Service;
    import android.content.Context;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.IBinder;
    import android.provider.MediaStore.Audio;
    import android.util.Log;
    import android.widget.RemoteViews;

    /**
    * 消息推送

    * @author Msquirrel

    */
    public class MessageService extends Service {

    private String TAG = "-----------";

    private MessageThread messageThread = null;

    // 点击查看
    private Intent messageIntent = null;
    private PendingIntent messagePendingIntent = null;

    // 通知栏消息
    private int messageNotificationID = 1000;
    private Notification messageNotification = null; // 是具体的状态栏通知对象,可以设置icon、文字、提示声音、振动等等参数。
    private NotificationManager messageNotificatioManager = null; // 是状态栏通知的管理类,负责发通知、清楚通知等。 
    private RemoteViews contentView = null;

    @Override
    public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
    // 初始化
    // messageNotification = new
    // Notification(R.drawable.icon,"新消息11",System.currentTimeMillis());//*简单消息版本里的*此版本不使用
    messageNotification = new Notification();
    messageNotification.icon = R.drawable.icon;// 状态栏提示图标
    messageNotification.tickerText = "嘿嘿,测试消息推送";// 状态栏提示消息

    contentView = new RemoteViews(getPackageName(), R.layout.view);// 消息内容容器
    contentView.setImageViewResource(R.id.image, R.drawable.icon);// 消息容器界面的图标

    messageNotification.contentView = contentView;// 把消息容器和消息绑定

    // messageNotification.icon = R.drawable.icon;//*简单消息版本里的*此版本不使用
    // messageNotification.tickerText = "新消息11";//*简单消息版本里的*此版本不使用
    // messageNotification.when=System.currentTimeMillis();
    // //*简单消息版本里的*此版本不使用

    // messageNotification.defaults |= Notification.DEFAULT_SOUND;//声音
    // messageNotification.defaults |= Notification.DEFAULT_LIGHTS;//灯
    // messageNotification.defaults |= Notification.DEFAULT_VIBRATE;//震动

    // messageNotification.sound = Uri.parse("file:///sdcard/to.mp3");
    messageNotification.sound = Uri.withAppendedPath(
    Audio.Media.INTERNAL_CONTENT_URI, "2");// 选音乐清单的第2首歌做消息声音
    // messageNotification.ledARGB = 0xff00ff00;//灯的颜色
    // messageNotification.ledOnMS = 300; //亮的时间
    // messageNotification.ledOffMS = 1000; //灭的时间
    // messageNotification.flags |= Notification.FLAG_SHOW_LIGHTS;//显示灯

    // long v[]= {0,100,200,300}; //震动频率
    // messageNotification.vibrate = v;
    //

    messageNotification.flags |= Notification.FLAG_AUTO_CANCEL;// 点击消息后,该消息自动退出
    messageNotification.flags |= Notification.FLAG_ONGOING_EVENT;// 在上方运行消息栏中出现
    // messageNotification.flags|=Notification.FLAG_NO_CLEAR;//此消息不会被清除

    messageNotificatioManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    messageIntent = new Intent(this, ShowMessage .class);// 点击消息后,要跳转的界面 ( 对应 详细消息的界面 )

    // 开启线程
    messageThread = new MessageThread();// 该线程每10秒,发布一条消息出来
    messageThread.isRunning = true;// 设置为false后,线程跳出循环并结束对
    messageThread.start();
    Log.i(TAG, "startCommand");
    return super.onStartCommand(intent, flags, startId);
    }

    /**
    * 从服务器端获取消息
    */
    class MessageThread extends Thread {
    // 设置为false后,线程跳出循环并结束
    public boolean isRunning = true;

    public void run() {
    while (isRunning) {
    try {

    String serverMessage = getServerMessage();

    if (serverMessage != null && !"".equals(serverMessage)) {
    // 更新通知栏
    // messageNotification.setLatestEventInfo(MessageService.this,"新消息","哇~有 新消息耶!"+serverMessage,messagePendingIntent);//*简单消息版本里的*此版本不使用

    contentView.setTextViewText(R.id.text, serverMessage);// 设置消息内容

    messageIntent.putExtra("message", serverMessage);// 为意图添加参数
    messagePendingIntent = PendingIntent.getActivity(
    MessageService.this, 0, messageIntent,
    PendingIntent.FLAG_CANCEL_CURRENT);// 将意图装入 延迟意图
    messageNotification.contentIntent = messagePendingIntent;// 将延迟意图装入消息
    messageNotificatioManager.notify(messageNotificationID,
    messageNotification);// 启动Notification

    Log.i(TAG, "发出消息");

    // messageNotificatioManager.cancel(messageNotificationID-1);//新消息来后,消除之前的一条消息(只显示最新消息)
    // 配置好下条消息的id号
    messageNotificationID++;
    }
    // 休息10秒钟
    Thread.sleep(10000);
    // 获取服务器消息
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }

    /**
    * 模仿服务器发送过来的消息,仅作示例

    * @return 返回服务器要推送的消息,否则如果为空的话,不推送
    */
    public String getServerMessage() {
    Log.i(TAG, "getmessage");
    return "亲, 测试成功啦~~!";

    }

    @Override
    public void onDestroy() {
    // System.exit(0);

    messageThread.isRunning = false;
    // 或者,二选一,推荐使用System.exit(0),这样进程退出的更干净
    // messageThread.isRunning = false;
    super.onDestroy();
    Log.i(TAG, "destroy");
    }

    }

    转载于:https://www.cnblogs.com/manmanlu/p/3807787.html

    展开全文
  • 通知栏清理

    2013-05-17 08:58:05
     因此好多安全软件提供了去通知栏广告的功能,甚至Android在4.2以后提供了disable某个app的notification功能,来净化通知栏。可见通知栏的控制对于用户来说至关重要。   安卓安全小分队在研究这一功能时,...

     Notification组织结构与cancel方法。

    由于Android市场管理的不健全,很多APP都通过向通知栏投广告的方式诱导用户点击,广告多了,很是烦心。


     因此好多安全软件提供了去通知栏广告的功能,甚至Android4.2以后提供了disable某个appnotification功能,来净化通知栏。可见通知栏的控制对于用户来说至关重要。

     

    安卓安全小分队在研究这一功能时,希望提出一些建设性的意见供大家参考。

    一、组织结构

    1. NotificationManagerService

    NotificationManagerService 是通知栏的大总管,负责处理所有APP发送来的通知消息。其功能非常简单,查看NotificationManagerService.java的代码可以得知。

    NMS做的工作大致可分为:

    a. 查询/设置某个APP的发通知能力(可禁用某APP发送通知,4.2版本后推出);

    b. 接受APP发送的通知;

    c. 记录notification数据;

    d. 发送应该显示的通知到通知栏(StatusBar

    e. 删除某条通知;

    2. NotificationRecord

    如果大家认为Notification类是NMS用来存储Notification的信息的数据结构那就大错特错了,在NMS内部是用NotificationRecord来存储的,其中包括了Notification类。


     新浪微博 @安卓安全小分队

    展开全文
  • 通知栏清理与查询

    千次阅读 2014-11-03 22:04:36
    因此好多安全软件提供了去通知栏广告的功能,甚至Android在4.2以后提供了disable某个app的notification功能,来净化通知栏。可见通知栏的控制对于用户来说至关重要。   安卓安全小分队 在研究这一功能时,...
        由于Android市场管理的不健全,很多APP都通过向通知栏投广告的方式诱导用户点击,广告多了,很是烦心。
    

        因此好多安全软件提供了去通知栏广告的功能,甚至Android4.2以后提供了disable某个appnotification功能,来净化通知栏。可见通知栏的控制对于用户来说至关重要。

     

        安卓安全小分队 在研究这一功能时,希望提出一些建设性的意见供大家参考。

    一、组织结构

    1. NotificationManagerService

        NotificationManagerService 是通知栏的大总管,负责处理所有APP发送来的通知消息。其功能非常简单,查看NotificationManagerService.java的代码可以得知。

    NMS做的工作大致可分为:

    a. 查询/设置某个APP的发通知能力(可禁用某APP发送通知,4.2版本后推出);

    b. 接受APP发送的通知;

    c. 记录notification数据;

    d. 发送应该显示的通知到通知栏(StatusBar

    e. 删除某条通知;

    2. NotificationRecord

        如果大家认为Notification类是NMS用来存储Notification的信息的数据结构那就大错特错了,在NMS内部是用NotificationRecord来存储的,其中包括了Notification类。

     


    除了Notification类以外NMS还记录了关于此条通知的其他信息,包括packageName, tag, id, score等。因此如果某个安全软件需要查询系统中存在的Notification,光去查Notification类本身是不够的,应该去查询NotificationRecord才能正确找到需要删除的通知。可是这 个类 是定义在NMS 内部的,而且属性为private,安全软件想要获取是异常辛苦的。

    二、cancel方法

       NMScancel方法有两种。

        1. cancelNotificationWithTag((String pkg, String tag, int id)。通过Tagid组合来删除特定的通知。

        2. cancelAllNotifications(String pkg)。删除某个package下的所有notification

       这两种方法都没有对外暴露,普通的APP只能通过NotificationManagercancel方法来cancel自己发出去的通知(NotificationManager最终还是会调用到NMS里的那两个cancel方法的)。如果安全软件要动别人的通知,那就需要额外做些努力了,我们了解到的,可以在root之后通过反射来调用。

    三、我们的想法

        有需求就会有实现,在4.0时代,通知栏还不支持禁用某个APP的推送通知功能。但是可能是在众多用户的呼吁下,在4.2时代,google添加了setNotificationsEnabledForPackage(String pkg, boolean enabled)函数,使用户可以禁用掉自己厌烦的广告信息。此函数的调用是在“设置”里,如前图所示,去掉Show Notification的勾APP就不会再推送消息了。

        同理,笔者认为,对于安全软件商来说,在系统中开放若干查询和删除notification的接口,对于用户和安全软件来说都大有益处,和系统对“设置”开放了setNotificationsEnabledForPackage接口的初衷一样。我们的理念是,避免手机被root,对于安全软件,只要开放合适的权限和提供必要的接口,满足安全需要就够了。这样,一来可以避免手机被root后各种无良软件绑架手机,肆意破坏;一来也给优秀的正规的安全软件以方便之门,让他们以人性化、界面友好的方式为我们提供安全保障服务。

        就查询notification的功能来说,我们可以将NMS记录的notification信息整理到一起,对外暴露接口以方便查询。在查询接口中对调用者的签名进行验证,以保证只有合格的安全软件才可以使用。

    同理对于cancel方法,我们也可以用同样原理,在检查了签名后直接调用NMS的两个cancel方法。

        Android系统本身应该是属于安全型的系统,用户主动或被动的root了自己的手机,就违背了Android的初衷,导致了各种后遗症的产生。放开了Android系统对软件的监管,使Android系统变得不安全。就像打开了潘多拉盒子,在得到便利的同时,系统也更加容易受到攻击。

        所以我们还是重申我们的主张,手机安全还是要从系统入手,只要系统本身能够提供安全软件的功能,或者有针对性地将系统接口给安全软件使用,那么,安卓系统在安全上的“水土不服”就能够解决了


    展开全文
  • 大家用安卓手机,是不是经常遇见这种情况:打开手机,通知栏就弹出一堆消息,而且很多还是广告和垃圾消息,手机和自己的神经感觉瞬间要崩溃!然而更崩溃的是,好不容易把这些消息清理干净,用不了多久,就又来了一堆...
  • Android 实现点击清理通知而不清理通知栏的通知解决办法 NotificationCompat.Builder builder=new NotificationCompat.Builder(appContext, CHANNEL_ID) .setSmallIcon(appContext.getApplicationInfo().icon) ...
  • Android 4.3开始系统开放...[TOC]功能背景常驻通知栏清理大师内部一直存在一个问题就是常驻进程可能在某些条件下被kill掉,导致一些依赖常驻进程的功能失效,典型的如自动清理。由于android系统在管理内存的时候按照...
  • Android的Notification是android系统中很重要的一个机制,产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等app,也会将...
  • 使用ToggleReceiver以编程方式启用/禁用“清理状态”,例如自动拍摄屏幕截图。 final Bundle extras = new Bundle (); extras . putBoolean( " enabled " , true ); final Intent intent = new Intent ( " ...
  • Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等 app,也会将...
  • android service 常驻后台, 不被清理

    千次阅读 2017-04-02 15:48:19
    公司有个项目,需要开个服务在后台运行, 并不容易让系统清掉,也能在通知栏有显示该服务正在运行。 主要service 代码如下: 主要是在service onCreate的时候,要使用一个notification 常驻在通知栏 @Override ...
  • Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等 app,也会将...
  • Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等app,也会将...
  •  先介绍下下载器实现的功能,多线程下载,断点续传,多任务通知栏排队下载,wifi 拉包,联网自动恢复下载任务,非wifi 状态预定下载任务,定期清理下载缓存,多数据库存储之间的数据迁移。  demo 的运行效...
  • 后来想到用Service防止软件被kill掉,查了下资料,发现google 管方就有,ForegroundService 前台服务,让服务一直以前台任务的方式运行,可以在service 的oncreate来实现前台服务, 通过这个方法必须发送一个通知栏,...
  • 软件名称:猎豹清理大师(国内版):Clean Master ...3.新增炫酷黑肤,让通知栏更高大上 4.全新内存异常检测,找出卡慢真凶 5.WIFI上网更安全,新增WIFI安全检测 6.特制勋章为你而来,清理垃圾乐趣多多
  •  本书涵盖了android开发从概念、技术到市场推广应用的全部话题,内容包括:android概览、android应用程序设计精髓、android用户界面设计精髓、常用android api、更多android应用程序设计原则、对外发布你的android...
  • Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等ap...
  • 真机调试的时候,先是弹出弹窗,要求卸载程序 点ok之后,还是安装失败,...在网上找了半天没有找到正确答案,忽然发现手机通知栏清理空间,豁然开朗,手机内存满了,清掉一部分就正常了。 不知道为什么搜不到答案...
  • 5、通知栏从白底更改为自适应屏幕颜色(满足大家对通知栏颜色的需求) 二、全新模块设计 1、主动防御全新功能改版,提供两种启动主动防御的方式,Root授权式主动防御和免root 2、隐私通信与隐私空间整合为个人...
  • Notification

    千次阅读 2016-06-28 13:34:52
    Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等app,也会将...
  • 现在各android应用中会在通知栏提示一些应用的通知提醒。当需要在特定时间对用户提醒,可以用service常驻后台来实现定时的提醒。此种方式也存在弊端,比如在miui等国产ui系统下,如果客户手动清理内存可能会导致后台...
  • ►状态栏通知 ◊电池,CPU,内存,SD,温度可选配下拉图形 ◊在顶部或底部添加电池剩余条 ◊取出原装电池图标 ►高度可配置小部件 ◊可调整大小的仪表小部件 ◊1×1和2×1(仅限PRO) )文本小部件 ◊2×1-5×2图形...
  • 91桌面 V6.2

    2015-01-15 07:00:58
    1、4.4.2以上固件新增通知栏透明化功能,全面美化尽在91桌面; 2、新增取消铃声设置功能,可在个性化-混搭-铃声设置铃声时体验; 3、个性化中新增作者专区,可在主题等详情页中点击作者名称进入; 4、优化桌面菜单项...
  • -新增加去自动下载android ADB服务文件(名叫统一连接服务) -自动点亮勋章图标,自动获得0.2天加速(感谢老李的补丁) -去鼠标指针移动到聊天消息中的图片时,显示“显示比例:?%,双击查看原图”的提示; -去主...
  • hideNotificationBar : 隐藏通知栏 Base64相关 -> Base64Utils.java            回到目录 encode : 编码 encodeToString : 编码 encodeToChar : 编码 decode : 解码 decode2String : 解码 ...
  • 支持任意操作系统,包括但不限于windows、linux、mac、android、uos、银河麒麟、各种国产linux、嵌入式linux、树莓派、香橙派、全志H3等。 支持编译生成设计师插件,可直接集成到QtCreator的控件中,和自带的控件...
  • ✅ Thief-Book:在任务、桌面、TouchBar 上进行摸鱼的神器 - 更多介绍 2019年1月10号添加 Tomxin7(桂林) - Github, 博客 ✅ 简单天气:不佳天气主动提醒 - 更多介绍 2019年12月21号添加 刘志军 - ...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

android清理通知栏