Android发送通知
来源:互联网 发布:matlab编程入门教程 编辑:程序博客网 时间:2024/06/05 00:49
安卓使用通知和用户交互是一个非常不错的选择,也是我们项目中经常用到的一个功能,所以今天有必要对这块做一下归纳。安卓发送的通知效果就是在状态栏显示一个通知的小图标,当下拉通知栏的时候可以看到整个消息的内容,同时在接收到消息的时候可以带声音、提示灯闪烁、震动、进度条等等,单用户点击通知的内容时也可以使用Intent干任何你想做的事,比如打开一个app,打开指定的网页,拨打电话等等,通知的一般样式如下图所示:
这是一个普通的通知,标号分别代表下面的含义:
1、大图标
2、标题
3、内容
4、文本摘要
5、通知的时间
6、小图标(当通知栏没有下拉的时候就是现实这个图标)
通知分为普通通知、自定义通知、特殊样式的通知。其中特殊样式的通知分为三类:NotificationCompat.InboxStyle、NotificationCompat.BigTextStyle、NotificationCompat.BigPictureStyle,他们与普通通知的区别就是风格不一样,其余的都是一样的。如果在使用通知的时候需要闪灯和震动,需要添加对应的权限:
<span style="font-size:10px;"> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.VIBRATE" /></span>
要发送一个通知,需要以下几个步骤:
1、使用系统服务获取notificationManager对象
2、使用notification或者notification.builder构建一个消息对象
3、使用notificationManager.notify()把消息发送出去
获取notificationmanager和notification.builder对象:
<span style="font-size:10px;"> NotificationCompat.Builder</span>
<span style="font-size:10px;">// 获取消息管理者notim = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);// 获取到兼容版本的消息对象notiBuilder = new NotificationCompat.Builder(this);</span>
对notification.builder进行设置:
notiBuilder// 点击消息后是否会自动取消,此设置必须要设置contentintent才有效.setAutoCancel(false)// 三项必设置.setContentTitle("消息的标题").setContentText("消息的内容").setSmallIcon(R.drawable.ic_launcher)// 文本的内容.setContentInfo("我是ContentInfo")// 指示灯闪烁.setLights(Color.LTGRAY, 5000, 5000)// 消息到达的时候上面滚动的文字.setTicker("你有一封新的短消息~请注意查收!")// 设置Intent跳转.setContentIntent(pIntent)// 设置消息到达的时间.setWhen(System.currentTimeMillis() + 100000000)// 震动.setVibrate(new long[] { 500, 500, 1000, 500 })// 设置大图标.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.bigpic));
之后调用notificationmanager的notify方法把消息发送出去。
ok,上面是发送一个普通的消息,我先贴上我的demo截图,然后说下发送特殊样式消息和自定义消息。
先来NotificationCompat.BigPictureStyle发送的特殊消息,其余的样式使用方法类似,就不再贴出了,如果不会可以看下载我的Demo查看。
代码:
<span style="font-size:10px;">// 发送大图片消息public void sendPicNoti(View view) {// 得到样式对象NotificationCompat.BigPictureStyle bs = new NotificationCompat.BigPictureStyle(notiBuilder);// 对样式设置bs.bigLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.bigicon)).bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.bigpic)).setBigContentTitle("BigContentTitle").setSummaryText("SummaryText");setNotiInfo();// 发送消息notim.notify(10, notiBuilder.build());}</span>
发送一个自定义消息的代码:
<span style="font-size:10px;">// 发送自定义消息public void sendCustom(View view) {RemoteViews views = new RemoteViews(getPackageName(), R.layout.custom_noti);views.setImageViewResource(R.id.imgv, R.drawable.bigpic);views.setTextViewText(R.id.txtv, "我是自定义视图");Notification noti = new Notification(R.drawable.ic_launcher, "你有一封新的短消息", System.currentTimeMillis());noti.contentView = views;notim.notify(3, noti);}</span>
ok,消息的使用大概就是这样的,如果需要显示一个进度条,可以设置builder.setProgress(max, progress, indeterminate),前两个分别为最大进度和当前进度,第三个参数为这个进度条是否显示具体的进度。最后附上我的demo:demo下载
扫描关注我的微信公众号:
- android基础--发送通知
- Android 发送通知
- android 发送状态通知
- android 发送状态栏通知
- Android 发送通知
- Android 发送通知
- Android发送通知
- android-发送状态栏通知
- Android发送通知
- Android定时发送通知
- android发送通知及更新通知
- Android发送通知栏消息
- Android发送通知栏信息
- Android发送通知栏消息
- android 发送通知栏通知的灵异事件
- android开发之向状态栏发送通知
- Android Service---给用户发送通知
- Android Service---给用户发送通知
- magento event lisetner - sales_order_creditmemo_refund>
- android app去除标题栏
- Java StringBuilder 的使用
- 数据解析之---SAX
- Android---动态添加删除的ListView与TableLayout
- Android发送通知
- Power-BI For K3免费版V10.0全新发布
- fedora 23下LNMP和phpmyadmin配置
- iCarousel类-分页滚动视图应用
- SQL注入攻防入门详解
- Java内功提升之标识符
- UnityEngine.UI.dll is in timestamps but is not known in assetdatabase
- 小组项目总结
- jp2图片处理的开源代码的网址,亲试可用,已用于公司项目的开发