`
guochongcan
  • 浏览: 326915 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

操作通知栏记录

阅读更多
package com.example.android.apis.app;

import com.example.android.apis.R;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RemoteViews;

public class StatusBarNotifications extends Activity {

	//用这个增加、去掉通知栏记录
    private NotificationManager mNotificationManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.status_bar_notifications);
        Button button;
        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //仅仅显示图片
        button = (Button) findViewById(R.id.happy);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                setMood(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message,
                        false);
            }
        });
        //显示图片及文字
        button = (Button) findViewById(R.id.happyMarquee);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                setMood(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message,
                        true);
            }
        });
        //显示图片及文字
        button = (Button) findViewById(R.id.happyViews);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                setMoodView(R.drawable.stat_happy, R.string.status_bar_notifications_happy_message);
            }
        });
        //图片及文字 与上面的有区别
        button = (Button) findViewById(R.id.defaultSound);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                setDefault(Notification.DEFAULT_SOUND);
            }
        });
        //清除通知栏里的图片及文字
        button = (Button) findViewById(R.id.clear);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                mNotificationManager.cancel(R.layout.status_bar_notifications);
            }
        });
    }
    private PendingIntent makeMoodIntent(int moodId) {
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, NotificationDisplay.class)
                        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                        .putExtra("moodimg", moodId),
                PendingIntent.FLAG_UPDATE_CURRENT);
        return contentIntent;
    }
    
    private void setMood(int moodId, int textId, boolean showTicker) {
        CharSequence text = getText(textId);
        String tickerText = showTicker ? getString(textId) : null;
        Notification notification = new Notification(moodId, tickerText,
                System.currentTimeMillis());
        notification.setLatestEventInfo(this, getText(R.string.status_bar_notifications_mood_title),
                       text, makeMoodIntent(moodId));
        mNotificationManager.notify(R.layout.status_bar_notifications, notification);
    }

    private void setMoodView(int moodId, int textId) {
        Notification notif = new Notification();
        notif.contentIntent = makeMoodIntent(moodId);
        CharSequence text = getText(textId);
        notif.tickerText = text;
        notif.icon = moodId;
        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.status_bar_balloon);
        contentView.setTextViewText(R.id.text, text);
        contentView.setImageViewResource(R.id.icon, moodId);
        notif.contentView = contentView;
        mNotificationManager.notify(R.layout.status_bar_notifications, notif);
    }
    
    private void setDefault(int defaults) {
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, StatusBarNotifications.class), 0);
        CharSequence text = getText(R.string.status_bar_notifications_happy_message);
        final Notification notification = new Notification(
                R.drawable.stat_happy,
                text,
                System.currentTimeMillis());
        notification.setLatestEventInfo(
                this,
                getText(R.string.status_bar_notifications_mood_title),
                text,
                contentIntent); 

        notification.defaults = defaults;
        
        mNotificationManager.notify(
                   R.layout.status_bar_notifications, 
                   notification);
    }    
}

 

  • 大小: 17.4 KB
分享到:
评论

相关推荐

    Android开发之获取通知栏的内容源码

    在Android开发中,获取通知栏的内容是一项常见的需求,特别是在做系统监控、日志记录或者定制化功能时。本文将深入探讨如何通过源码实现这一功能,主要涉及Android的通知系统架构和相关API的使用。 首先,我们需要...

    Android通知栏的程序.zip_android_northziz_监听Android_通知栏

    本教程将深入探讨如何使用`NotificationListenerService`来监听Android设备的通知栏事件,以便实现自定义的功能,如记录通知历史、管理通知或者进行其他定制化处理。 `NotificationListenerService`是Android提供的...

    Android通知栏拦获微信消息

    在Android系统中,通知栏是应用与用户交互的重要途径,特别是对于即时通讯软件如微信,通知栏消息的处理显得尤为重要。本主题将深入探讨如何在Android中实现对通知栏微信消息的捕获。 首先,我们需要了解Android的...

    简单的通知栏监控应用

    本项目名为"简单的通知栏监控应用",旨在帮助用户捕获并记录手机接收到的所有通知消息,将这些消息保存到一个txt文本文件中,方便后续查看和分析。 首先,我们要理解Android的通知系统。在Android中,当一个应用想...

    通知栏和来电拦截

    通知栏和来电拦截是智能手机操作系统中的重要功能,主要用于管理和控制用户接收到的信息和通信。在Android和iOS等主流操作系统中,这些功能都是不可或缺的组成部分,旨在提供更好的用户体验和隐私保护。 1. **通知...

    通知栏下载更新程序

    通知栏下载更新程序是一种常见的软件更新机制,通常用于移动设备如智能手机和平板电脑,但也可能应用于桌面操作系统。这种机制允许用户在不离开当前应用或界面的情况下接收和安装应用程序的更新,提高了用户体验。...

    通知栏净化-1.0.0.1.zip

    在AutoJS中,可以使用`Notification`对象来操作通知。例如,`Notification.getAll()`方法用于获取当前所有通知的信息,`Notification.cancel()`方法则用于取消指定ID的通知。通过遍历这些通知,我们可以对它们进行...

    Android 断点下载文件通知栏提示

    结合通知栏提示,可以提供用户友好的体验,让用户随时了解下载进度。下面我们将详细探讨如何在Android中实现断点下载及通知栏提示,特别关注于apk文件的更新安装。 1. **断点下载原理**: 断点下载的关键在于保存...

    检测更新,通知栏下载更新进度

    "检测更新,通知栏下载更新进度"这个主题涉及到的是应用自动检测新版本并以非侵入式方式通知用户的过程,让用户可以在后台轻松地下载更新。下面将详细讨论这一过程中的关键知识点。 首先,**检测更新**通常是通过在...

    仿android4.0系统通知栏列表横滑删除

    在Android开发中,仿制Android 4.0...通过这些技术的结合,我们可以创建出与Android 4.0系统类似的通知栏体验,让用户在操作时更加方便快捷。在实际开发中,还可以根据项目需求进行定制化设计,提升应用的用户体验。

    android通知栏,断点下载

    在Android系统中,通知栏是用户与应用交互的重要途径,特别是在后台运行任务或者进行长时间操作时,如断点下载。断点下载是指在一个文件下载过程中,如果因为网络问题或者其他原因中断,可以在下次重新开始下载时从...

    多线程断点续传并在通知栏显示进度

    这个Demo展示了如何实现这一功能并同步更新通知栏的下载进度。以下是对这个主题的详细解析: 首先,多线程下载是提高下载速度的一种方法。在单线程下载中,数据流通常会被限制在一个线程中,而多线程则可以同时从...

    android使用NotificationListenerService监听通知栏消息

    在Android平台上,NotificationListenerService是一个特殊的服务类型,它允许应用程序监听和访问系统通知栏中显示的通知。这个服务的目的是为了给开发者提供一种安全的方式去获取和处理其他应用发送的通知,而不需要...

    自定义dialog选择下载,通知栏显示进度、service后台下载

    在Android开发中,实现“自定义dialog选择下载,通知栏显示进度、service后台下载”的功能是常见的需求。这个过程涉及到用户界面(UI)的设计、服务(Service)的使用以及文件下载的管理。以下是对这些知识点的详细...

    Android-TinyNoty一个轻量级的通知栏备忘小工具

    这个应用非常适合那些需要频繁记录临时事项或者提醒自己的用户,无需打开复杂的笔记应用,只需通过通知栏就能轻松完成。 在Android开发中,"提示框(Tip)"通常指的是用于向用户显示信息、警告或询问的短暂交互元素。...

    通知监听4_E4a监控通知_E4A_e4a窃听_E4A获取通知_监听通知_

    在Android开发中,有时我们需要对系统通知栏的消息进行监听,以便在特定通知出现时执行相应的操作。`E4A(Easy4Android)`是一个流行的基于Java的编程工具,用于编写Android应用程序,它提供了简单易懂的语法,使得...

    C# Window10原生系统通知Toast

    这种通知能够直接出现在操作系统的任务栏通知区域,吸引用户的注意力,并且允许用户进行点击或者其他交互操作。本篇文章将深入探讨如何利用Windows 10的API在C#中实现这一功能。 首先,我们要了解Windows 10的通知...

    Android Fragment实现底部通知栏

    Android Fragment 实现底部通知栏 Android Fragment 是 Android 操作系统中的一种特殊的 UI 组件,它可以在 Activity 中重复使用,以实现灵活的用户界面设计。在本文中,我们将详细介绍如何使用 Android Fragment ...

    清理任务栏自定义通知里的图标

    此路径下有两个重要的值:`IconStreams`和`PastIconStreams`,它们记录了所有曾经显示在任务栏通知区域的图标信息。为了彻底清除这些图标,我们需要: 1. 按下`Win + R`键,打开“运行”对话框。 2. 输入`regedit`...

    隐藏任意程序在任务栏通知处的图标

    在Windows操作系统中,任务栏的通知区域(也称为系统托盘)是用户经常查看各种应用程序状态和接收通知的地方。有时,为了保持桌面的整洁或者避免某些程序的图标干扰视线,我们可能希望隐藏这些程序的图标。标题提到...

Global site tag (gtag.js) - Google Analytics