Android Wear 开发入门——怎样创建一个手机与可穿戴设备关联的通知(Notification)
创建通知
为了创建在手机与可穿戴设备中都能展现的通知,能够使用 NotificationCompat.Builder。通过该类创建的通知,系统会处理该通知是否展如今手机或者穿戴设备中。
导入必要的类库
在开发之前首先须要导入下面类库
importandroid.support.v4.app.NotificationCompat;
importandroid.support.v4.app.NotificationManagerCompat;
importandroid.support.v4.app.NotificationCompat.WearableExtender;
使用Notification Builder创建通知
v4 support library 库同意开发人员使用最新的通知特性,如action button或者large
icons,编译环境须要在4以上。
使用支持库开发的通知,须要创建NotificationCompat.Builder实例,公布通知使用notify(),例如以下代码所看到的:
int notificationId = 001;
// Build intent for notification content
Intent viewIntent = new Intent(this,ViewEventActivity.class);
viewIntent.putExtra(EXTRA_EVENT_ID, eventId);
PendingIntent viewPendingIntent =
PendingIntent.getActivity(this,0, viewIntent,0); NotificationCompat.BuildernotificationBuilder=
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_event)
.setContentTitle(eventTitle)
.setContentText(eventLocation)
.setContentIntent(viewPendingIntent); // Get an instance of the NotificationManager service
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this); // Build the notification and issues it with notification manager.
notificationManager.notify(notificationId,notificationBuilder.build());
当这条通知出如今手机上是,使用者能够指定PendingIntent通过使用setContentIntent()方法触发这条通知,当通知出如今手机中时,使用者何以向左滑动来销毁出现的通知。
加入Action Button
除了定义的setcontentintent()主要内容的行为,你能够通过传递一个PendingIntent到addaction()方法加入其它行动。
比如,以下的代码展示了与上面代码同样类型的通知,可是加入了一个动作在view的上面。
// Build an intent for an action to view a map
Intent mapIntent = new Intent(Intent.ACTION_VIEW);
Uri geoUri = Uri.parse("geo:0,0?q=" + Uri.encode(location));
mapIntent.setData(geoUri);
PendingIntent mapPendingIntent =
PendingIntent.getActivity(this, 0, mapIntent, 0); NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_event)
.setContentTitle(eventTitle)
.setContentText(eventLocation)
.setContentIntent(viewPendingIntent)
.addAction(R.drawable.ic_map,
getString(R.string.map), mapPendingIntent);
在手机上,该action是以button形式附加在notification一起,在穿戴设备中,该action是以一个大button形式出现的,当用户单击该button,intent中的内容将在手机中被调起。
指定可穿戴设备独有的行为
假设希望可穿戴设备中的行为有别于手机,使用WearableExtender.addAction().当使用该方法,穿戴设备中将不再展现使用NotificationCompat.Builder.addAction().的行为,也就是仅仅显示其在可穿戴设备中。
// Create an intent for the reply action
Intent actionIntent = new Intent(this, ActionActivity.class);
PendingIntent actionPendingIntent =
PendingIntent.getActivity(this, 0, actionIntent,
PendingIntent.FLAG_UPDATE_CURRENT); // Create the action
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(R.drawable.ic_action,
getString(R.string.label, actionPendingIntent))
.build(); // Build the notification and add the action via WearableExtender
Notification notification =
new NotificationCompat.Builder(mContext)
.setSmallIcon(R.drawable.ic_message)
.setContentTitle(getString(R.string.title))
.setContentText(getString(R.string.content))
.extend(new WearableExtender().addAction(action))
.build();
加入Big View
开发人员能够插入一个Big View形式的内容进入通知,在手机中,用户能够通过展开通知来查看该Big View,在可穿戴设备中,该Big View是默认可见的。
加入这样的可展开的内容作为通知,使用 NotificationCompat.Builder 对象中的setStyle() 方法,传递给实例BigTextStyle 或者 InboxStyle样式。
比如以下代码是加入了BigTextStyle 到通知中。
// Specify the 'big view' content to display the long
// event description that may not fit the normal content text.
BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
bigStyle.bigText(eventDescription); NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_event)
.setLargeIcon(BitmapFractory.decodeResource(
getResources(), R.drawable.notif_background))
.setContentTitle(eventTitle)
.setContentText(eventLocation)
.setContentIntent(viewPendingIntent)
.addAction(R.drawable.ic_map,
getString(R.string.map), mapPendingIntent)
.setStyle(bigStyle);
为通知加入可穿戴设备特性
假设想加入可穿戴设备中特有的特性,如语音输入等,能够使用NotificationCompat.WearableExtender 类,使用该类分下面几步。
1 创建WearableExtender实例,设置可穿戴设备特有的特性
2 创建NotificationCompat.Builder实例,设置如前文所述
3 调用extend()方法,传递给WearableExtender
4 调用build()创建通知
以下代码使用 setHintHideIcon()移除通知卡片中的图标
// Create a WearableExtender to add functionality for wearables
NotificationCompat.WearableExtender wearableExtender =
new NotificationCompat.WearableExtender()
.setHintHideIcon(true); // Create a NotificationCompat.Builder to build a standard notification
// then extend it with the WearableExtender
Notification notif = new NotificationCompat.Builder(mContext)
.setContentTitle("New mail from " + sender)
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail);
.extend(wearableExtender)
.build();
假设想在后面读取特有的特性的值,能够例如以下代码所看到的
NotificationCompat.WearableExtender wearableExtender =
new NotificationCompat.WearableExtender(notif);
boolean hintHideIcon = wearableExtender.getHintHideIcon();
传送通知
当须要传递通知时,使用 NotificationManagerCompat API取代NotificationManager:
// Get an instance of the NotificationManager service
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(mContext); // Issue the notification with notification manager.
notificationManager.notify(notificationId, notif);
当使用NotificationManager,一些 NotificationCompat.WearableExtender 的特性不能工作
NotificationCompat.WearableExtender wearableExtender =
new NotificationCompat.WearableExtender(notif);
boolean hintHideIcon = wearableExtender.getHintHideIcon();
Android Wear 开发入门——怎样创建一个手机与可穿戴设备关联的通知(Notification)的更多相关文章
- Android Wear 开发入门
大家好,我是陆嘉杰,我是一名Android开发者.我想和大家进行一些技术交流,希望越来越多的人能和我成为好朋友. 大家都知道,智能手表是下一个开发的风口,而这方面的技术又属于前沿,所以和大家分享下An ...
- Android Wear开发 - 入门指引 - Eclipse开发平台搭建
开发平台配置 下载最新版本的ADT,详情见官网:http://developer.android.com/sdk/installing/installing-adt.html .(之前一直习惯于Goo ...
- android wear开发之:创建可穿戴设备应用 - Creating Wearable Apps
注:本文内容来自:https://developer.android.com/training/wearables/apps/index.html 翻译水平有限,如有疏漏,欢迎批评指教. 译:山人 创 ...
- android wear开发:为可穿戴设备创建一个通知 - Creating a Notification for Wearables
注:本文内容来自:https://developer.android.com/training/wearables/notifications/creating.html 翻译水平有限,如有疏漏,欢迎 ...
- 一看就懂的Android APP开发入门教程
一看就懂的Android APP开发入门教程 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤 ...
- IDEA搭建Android wear开发环境,Android wear,I'm comming!
随着google公布了android wear这个东西.然后又有了三星的gear,LG的G watch以及moto 360,苹果由公布了apple watch.未来可能在智能手表行业又有一场战争. 当 ...
- SpringMVC基础入门,创建一个HelloWorld程序
ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...
- CXF 入门:创建一个基于WS-Security标准的安全验证(CXF回调函数使用,)
http://jyao.iteye.com/blog/1346547 注意:以下客户端调用代码中获取服务端ws实例,都是通过CXF 入门: 远程接口调用方式实现 直入正题! 以下是服务端配置 ==== ...
- android wear开发之:增加可穿戴设备功能到通知中 - Adding Wearable Features to Notifications
注:本文内容来自:https://developer.android.com/training/wearables/notifications/index.html 翻译水平有限,如有疏漏,欢迎批评指 ...
随机推荐
- windows API与C#的数据类型对应关系表
API与C#的数据类型对应关系表 API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型 WORD 16位无符号整数 ushort CHAR 字符 char LONG 32位无符号整数 ...
- 网络基础知识系列:阐述VLAN和Trunk
网络性能是影响的效率的重要因素. 大的广播域分割方法,旨在提高网络性能.一个接口上,可是,路由器的LAN接口数量有限,它的主要功能是在网络间数据传输,而不是对终端设备提供网络接入. 訪问LAN的功能还 ...
- iOS编程之前
iOS编程之前 更新:帖子已经重新被更新过,以便能更好的兼容Xcode 5和iOS 7. 至今为止,已经超过6000位读者加入了这个iOS免费教程.首先,我要感谢这些加入我们社区的朋友.在 ...
- vb.net它SqlHelper制备及应用
上次文章中说到.对于一个项目来说.SqlHelper是一个非常重要的类. 在正在构造的机房收费系统中.有大量的操作数据库的操作. 现在.把反复的代码所有拿出来,就形成了SqlHelper类.这个Sql ...
- 【嵌入式开发】写入开发板Linux系统-模型S3C6410
笔者 : 万境绝尘 转载请著名出处 最终拿到板子了, 嵌入式开发正式开启. 板子型号 : 三星 S3C6410 基于ARM11, 指令集基于arm6指令集; 为毛不是 Cortext A9的板子; 烧 ...
- [MySQL]-->询5
几天之内解决在新年发行一个同事的生日过程
前言: 遇到朋友提问,例如以下:SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),D ...
- netback于kthread遇到cpu affinity问题
最近的升级netback, 在测试过程中,查找vm全双工压力,rx的pps波动很厉害,见rx kthread尽管cpu affinity它是0-7 (dom0 8vcpu), 但往往,她去了物理破坏c ...
- 读改善c#代码157个建议:建议10~12
目录: 建议10:创建对象时需要考虑是否实现比较器 建议11:区别对待==与Equals 建议12:重写Equals时也要重写GetHashCode 一.建议10:创建对象时需要考虑是否实现比较器 比 ...
- NGUI 3.5课程(五岁以下儿童)button-图片切换
然后,我们去了一个样本,做一个button画面切换. 特征,像球员"开始"和"暂停". 写TestButton.cs脚本: using UnityEngine; ...
- Android Studio Debug
小米4usb调试怎么打开?miui6进入开发者模式想要打开USB调试首先开启开发者模式.过去在MIUI V5版本时,小米手机开启开发者模式的方法是连续点击Anroid版本号.不过最新上市的小米4都搭载 ...