最近公司安排了一个任务,是做三星手表的开发,貌似这方面的资料蛮少的,自己看了一些仅有的资料,然后查阅了谷歌的开发文档,略懂了一点点,下面开始系统介绍一下,其实这些大部分都是谷歌开发文档的内容,权当做个翻译,也当作自己的学习记录。
一、什么是context stream?
当安卓手持设备(手机或者平板)和穿戴设备连接的时候,手持设备会自动与穿戴设备分享通知内容,每一条内容会在穿戴设备上以context stream的形式展现,那么什么是context stream呢?谷歌开发文档的原文是这么写的:The context stream is a vertical list of cards, each showing a useful or timely piece of information. 翻译过来就是 上下文流是一种垂直的卡片集合列表,每一个上下文流会显示一条及时而有用的信息。(因为它是以垂直形式展示的?)下面的不多做翻译了,既然说到了通知,那么,如何在安卓穿戴手表上创立一个通知呢?
二、创立穿戴设备的通知
首先我们建立一个主布局文件,里面什么都不写,空布局。
<RelativeLayout 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"
>
</RelativeLayout>
其次。在java代码中加载我们的布局,并创建我们的通知。
这里我们首先要注意的是,要引入我们需要的包
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v4.app.NotificationCompat.WearableExtender;
然后,我们利用 NotificationCompat.Builder
这个类创建一个我们的builder对象,这个和我们的alertdailog.builder很类似,创建好我们的builder后,我们需要调用notify()方法通知更新。代码如下:
package com.tongcheng.googlewear.wear;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createnotificattion();
setContentView(R.layout.activity_main);
}
private void createnotificattion() {
int notificationId = 001;
Intent viewIntent = new Intent(this, MainActivity.class);
PendingIntent viewPendingIntent =
PendingIntent.getActivity(this, 0, viewIntent, 0);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("测试")
.setContentText("仅仅用于是测试")
.setContentIntent(viewPendingIntent);
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this);
notificationManager.notify(notificationId, notificationBuilder.build());
}
}
这里需要特别指出的是,要在AndroidManifest.xml中将android:theme="@style/AppTheme"删除,要不然会报错
效果很简单,我们来看看样子: