Android中通知Notification使用实例(振动、灯光、声音)

本文实例讲解了通知Notification使用方法,此知识点就是用作通知的显示,包括振动、灯光、声音等效果,分享给大家供大家参考,具体内容如下

效果图:

MainActivity:

import java.io.File; 

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; 

public class MainActivity extends Activity implements OnClickListener { 

 private Button sendNotice; 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  sendNotice = (Button) findViewById(R.id.send_notice);
  sendNotice.setOnClickListener(this);
 } 

 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.send_notice:
   NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

   //创建notification对象来存储通知所需的各种信息
   //第一个参数为图标
   //第二个参数用于指定通知的ticker内容
   //第三个参数用于指定通知被创建的时间,以毫秒为单位
   Notification notification = new Notification(
     R.drawable.ic_launcher, "This is ticker text",
     System.currentTimeMillis()); 

   //此处设置点击的activity的跳转
   //第一个参数依旧是Context
   //第二个参数一般用不到,所以用0表示取默认值
   //第三个参数就是一个Intent对象
   //FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,
   // 那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。
   Intent intent = new Intent(this, NotificationActivity.class);
   PendingIntent pi = PendingIntent.getActivity(this, 0, intent,
     PendingIntent.FLAG_CANCEL_CURRENT); 

   //设置通知的布局
   //第一个参数为Context
   //第二个参数用于指定通知的标题
   //第三个参数用于指定通知的征文内容
   //第四个参数用于传入PendingIntent对象,用于设置点击效果
   notification.setLatestEventInfo(this, "This is content title",
     "This is content text", pi); 

//   //设置在通知发出的时候的音频
//   Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
//   notification.sound = soundUri;
//
//   //设置手机震动
//   //第一个,0表示手机静止的时长,第二个,1000表示手机震动的时长
//   //第三个,1000表示手机震动的时长,第四个,1000表示手机震动的时长
//   //此处表示手机先震动1秒,然后静止1秒,然后再震动1秒
//   long[] vibrates = {0, 1000, 1000, 1000};
//   notification.vibrate = vibrates;
//
//   //设置LED指示灯的闪烁
//   //ledARGB设置颜色
//   //ledOnMS指定LED灯亮起的时间
//   //ledOffMS指定LED灯暗去的时间
//   //flags用于指定通知的行为
//   notification.ledARGB = Color.GREEN;
//   notification.ledOnMS = 1000;
//   notification.ledOffMS = 1000;
//   notification.flags = Notification.FLAG_SHOW_LIGHTS; 

   //如果不想进行那么多繁杂的这只,可以直接使用通知的默认效果
   //默认设置了声音,震动和灯光
   notification.defaults = Notification.DEFAULT_ALL; 

   //使用notify将通知显示出来
   //第一个参数是id,要爆炸为每个通知所指定的id是不同的
   //第二个参数就是Notification对象
   manager.notify(1, notification);
   break;
  default:
   break;
  }
 } 

}

activity_main:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" > 

 <Button
  android:id="@+id/send_notice"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="发出通知"
  /> 

</LinearLayout> 

NotificationActivity:

import android.app.Activity;
import android.app.NotificationManager;
import android.os.Bundle; 

public class NotificationActivity extends Activity { 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.notification_layout); 

  //打开NotificationActivity这个Activity后把通知给关掉
  NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  manager.cancel(1);
 } 

}

notification_layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent" > 

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerInParent="true"
  android:textSize="24sp"
  android:text="这是通知点击后的界面"
  /> 

</RelativeLayout> 

AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.notificationtest"
 android:versionCode="1"
 android:versionName="1.0" > 

 <uses-sdk
  android:minSdkVersion="14"
  android:targetSdkVersion="19" /> 

 <application
  android:allowBackup="true"
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name"
  android:theme="@style/AppTheme" >
  <activity
   android:name="com.example.notificationtest.MainActivity"
   android:label="@string/app_name" >
   <intent-filter>
    <action android:name="android.intent.action.MAIN" /> 

    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <activity android:name=".NotificationActivity" >
  </activity> 

 </application> 

</manifest> 
(0)

相关推荐

  • Android编程实现拦截短信并屏蔽系统Notification的方法

    本文实例讲述了Android编程实现拦截短信并屏蔽系统Notification的方法.分享给大家供大家参考,具体如下: 拦截短信有几个关键点: 1.android接收短信时是以广播的方式 2.程序只要在自己的Manifest.xml里加有"接收"SMS的权限 <uses-permission android:name="android.permission.RECEIVE_SMS"> </uses-permission> <uses-p

  • Android界面 NotificationManager使用Bitmap做图标

    今天看到EOE问答里面有这"[Android 界面]NotificationManager 如何使用Bitmap做图标"这样一个问题,在论坛搜索也没有好的案例 特写一个简单的demo供大家参考 今天发布的是NotificationManager 使用Bitmap做图标 关键code 复制代码 代码如下: public void notification(int flag) { Notification notification = new Notification(); //设置sta

  • Android开发 -- 状态栏通知Notification、NotificationManager详解

    本想自己写一个的,但是看到这篇之后,我想还是转过来吧,实在是非常的详细: 在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:  NotificationManager . Notification. NotificationManager :  是状态栏通知的管理类,负责发通知.清楚通知等. NotificationManager 是一个系统Service,必须通过 getSys

  • android使用NotificationListenerService监听通知栏消息

    NotificationListenerService是通过系统调起的服务,在应用发起通知时,系统会将通知的应用,动作和信息回调给NotificationListenerService.但使用之前需要引导用户进行授权.使用NotificationListenerService一般需要下面三个步骤. 注册服务 首先需要在AndroidManifest.xml对service进行注册. <service android:name=".NotificationCollectorService&q

  • Android中关于Notification及NotificationManger的详解

    Android状态栏提醒 在Android中提醒功能也可以用AlertDialog,但是我们要慎重的使用,因为当使用AlertDialog的时候,用户正在进行的操作将会被打断,因为当前焦点被AlertDialog得到.我们可以想像一下,当用户打游戏正爽的时候,这时候来了一条短信.如果这时候短信用AlertDialog提醒,用户必须先去处理这条提醒,从而才能继续游戏.用户可能会活活被气死.而使用Notification就不会带来这些麻烦事,用户完全可以打完游戏再去看这条短信.所以在开发中应根据实际

  • android notification 的总结分析

    分类 notification有以下几种: 1>普通notification 1.内容标题 2.大图标 3.内容 4.内容附加信息 5.小图标 6.时间 2>大布局Notification 图1 大布局notification是在android4.1以后才增加的,大布局notification与小布局notification只在'7'部分有区别,其它部分都一致.大布局notification只有在所有notification的最上 面时才会显示大布局,其它情况下显示小布局.你也可以用手指将其扩

  • android中创建通知栏Notification代码实例

    ///// 第一步:获取NotificationManager NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); ///// 第二步:定义Notification Intent intent = new Intent(this, OtherActivity.class); //PendingIntent是待执行的Intent PendingIntent pi

  • 详解Android中Notification通知提醒

    在消息通知时,我们经常用到两个组件Toast和Notification.特别是重要的和需要长时间显示的信息,用Notification就最 合适不过了.当有消息通知时,状态栏会显示通知的图标和文字,通过下拉状态栏,就可以看到通知信息了,Android这一创新性的UI组件赢得了用户的一 致好评,就连苹果也开始模仿了.今天我们就结合实例,探讨一下Notification具体的使用方法.  首先说明一下我们需要实现的功能是:在程序启动时,发出一个通知,这个通知在软件运行过程中一直存在,相当于qq的托盘

  • Android中通过Notification&NotificationManager实现消息通知

    notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户.它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径. 1.新建一个android项目 我新建项目的 minSdkVersion="11",targetSdkVersion="19".也就是支持最低版本的3.0的. 2.习惯性地打开项目清单文件AndroidManifest.xml,添加一个权限:&

  • Android Notification.Builder通知案例分享

    随着Android系统的不断升级,相关Notification的用法有很多种,有的方法可能已经被android抛弃了,下面为大家分享一下个人如何实现Android Notification通知小案例源代码,供大家参考. Android Notification.Builder通知小案例,具体代码示例如下: package com.example.day6ke; import android.app.Notification; import android.app.NotificationMana

随机推荐