关于 PendingIntent 和 Notification 以及 sendTextMessage

 Android的状态栏通知(Notification)

如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息。

步骤:

1
获取通知管理器NotificationManager,它也是一个系统服务

2
建立通知Notification notification = new Notification(icon, null, when);

3
为新通知设置参数(比如声音,震动,灯光闪烁)

4
把新通知添加到通知管理器

发送消息的代码如下:

//获取通知管理器

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)

int icon = android.R.drawable.stat_notify_chat;

long when = System.currentTimeMillis();//通知发生的时间为系统当前时间

//新建一个通知,指定其图标和标题

Notification notification = new Notification(icon, null, when);//第一个参数为图标,第二个参数为短暂提示标题,第三个为通知时间

notification.defaults = Notification.DEFAULT_SOUND;//发出默认声音

notification.flags |= Notification.FLAG_AUTO_CANCEL;//点击通知后自动清除通知

Intent openintent = new Intent(this, OtherActivity.class);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, openintent,
0);//当点击消息时就会向系统发送openintent意图

notification.setLatestEventInfo(this, “标题”,
“我是内容", contentIntent);

mNotificationManager.notify(0, notification);//第一个参数为自定义的通知唯一标识

 

重点是setLatestEventInfo( )方法的最后一个参数!!!!它是一个PendingIntent!!!!!!!!!

这里使用到了PendingIntent(pend本意是待定,不确定的意思)

PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前Application的Context。正由于PendingIntent中保存有当前Application的Context,使它赋予带他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent。

 

PendingIntent的一个很好的例子:

SmsManager的用于发送短信的方法:

sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);

第一个参数:destinationAddress
对方手机号码

第二个参数:scAddress
短信中心号码
一般设置为空

第三个参数:text
短信内容

第四个参数:sentIntent判断短信是否发送成功,如果你没有SIM卡,或者网络中断,则可以通过这个itent来判断。注意强调的是“发送”的动作是否成功。那么至于对于对方是否收到,另当别论

第五个参数:deliveryIntent当短信发送到收件人时,会收到这个deliveryIntent。即强调了“发送”后的结果

就是说是在"短信发送成功"和"对方收到此短信"才会激活
sentIntent和deliveryIntent这两个Intent。这也相当于是延迟执行了Intent

 

时间: 2024-10-30 04:02:46

关于 PendingIntent 和 Notification 以及 sendTextMessage的相关文章

Notification(二)——PendingIntent的flag导致数据相同的问题

MainActivity如下: package cc.cu; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; import android.app.Notification; import android.app.NotificationMa

pendingintent-怎么解析PendingIntent,从而得到其中描述的Intent

问题描述 怎么解析PendingIntent,从而得到其中描述的Intent 使用notification之后,需要跳转的信息都存放到了Intent中然而intent又封装成PendingIntent中,现在我想通过pendingIntent得到我封装进去的那个Intent,该怎么做?或者说我想通过PendingIntent得到它描述的那个Intent中的信息,有这个可能吗? 发送端: Intent openintent = new Intent(this ZXReaderAbout.class

Notification(三)——点Notification后返回当前App所在的Activity

MainActivity如下: package cc.cu; import android.app.Activity; 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; /**

手机卫士-安卓开发中的notification问题

问题描述 安卓开发中的notification问题 notification不能用, notification.setLatestEventInfo(context, "手机卫士", "保护中", pendingIntent); 代码中的setlatestEventinfo出错 很急,求大神解决 解决方案 http://www.2cto.com/kf/201502/374946.html 解决方案二: 应该是上下文没写好 context改为 this 或你定义的Ac

Android Notification 基础

  在Android中,基本的Notification就是有事件发生的时候在屏幕顶端的Notification bar上显示一个图标.然后拉下Notification bar,点击Notification的项目,会调用相应的程序做处理.比如有新短信,就会出现短信的图标,拉下Notification bar,点击图标会调用短信查看程序.   我们先看一下Notification的Sample Code,然后逐行做解说,大致能了解它的基本构成.     import android.app.Noti

android notification 的总结分析_Android

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

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

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

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

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

Android Notification使用方法详解

Android  Notification使用详解 Notification 核心代码(链式调用):适用于Android 4.0以上(不兼容低版本) Notification noti = new Notification.Builder(this) .setContentTitle("标题名称") .setContentText("标题里的内容") .setSmallIcon(R.drawable.new_mail) .setLargeIcon(BitmapFac