原文地址
Sony SmartWatch产品是用来补充/扩展Android移动设备功能的配件。SmartWatch为触屏配件,使用蓝牙跟Android手机或平板通信。目前该产品包括SmartWatch(MN2)和SmartWatch 2(SW2)。
SmartWatch配置如下:
SmartWatch 2配置如下:
注意:LED和Text to speech不可用于为SmartWatch 2开发的app
1、蓝牙通信
2、包括SmartWatch(MN2)和SmartWatch2(SW2)
SmartWatch配置:
Vibrator, Accelerometer, Button(不可用于app)
SmartWatch2配置:
Vibrator, Accelerometer, Light sensor, Action key, Back key, Home key(不可用于app)
注意LED和Text to speech不可用于为SmartWatch 2开发的app
产品 | SmartWatch | SmartWatch 2 |
屏幕类型 | OLED, 16-bit | TFT, 16-bit |
分辨率 | w:128px, h:128px | w:220, h:176px |
产品 | SmartWatch | SmartWatch 2 |
Control API v1.0 | 支持 | 支持 |
Control API v2.0 | 支持 | |
Registration & Capabilities API v1.0 | 支持 | 支持 |
Registration & Capabilities API v2.0 | 支持 | |
Notification API v1.0 | 支持 | 支持 |
Notification API v2.0 | 支持 | |
Sensor API v1.0 | 支持 | 支持 |
Widget API v1.0 | 支持 |
1.针对SmartWatch
2.SmartWatch2
SmartWatch是高性能的智能配件,所以需要合理地使用电池。主应用和Sony Add-on SDK包含提供一些节省电量的功能。但Extension最好遵循以下建议:
使用传感器用SmartExtensionUtils.isSensorSupported()进行检查。可参考SampleSensorExtension参考这个方法的使用方法
加速度计仅可用于当前正在运行的Extension。如果屏幕熄灭,或按下power键,或者另一个Extension启动了,导致当前Extension暂停,那么加速度计将停止。
如果Extension仍然想接收到传感器数据,则需要使用SCREEN_STATE_ON, SCREEN_STATE_OFF或 SCREEN_STATE_DIM Intent
所有的Smart Extension app运行在service中。Android中的service为后台进程,而同时运行的后台进程数量是有限的,所以Android会停止最近未使用的进程。甚至当Smart Extension app在前台显示时这种情况也会发生。通常这不会是什么大问题因为Smart Extension app仅在前台并和用户直接交互很短的一段时间。另外,SmartExtensionUtils中提供方法用于Smart Extension app与用户交互时被停止掉时的恢复。
对需要长时间运行且不应被中止的Smart Extension app,可以使用Service.startForeground()方法来将后台进程变成前台进程。这么做的副作用是service在前台运行时状态栏会出现一个notification。
开发一款Extension后,当终端用户在SmartConnect中搜索兼容的应用时能被找到,可以增加曝光度。
为了更容易被搜索到,支持SmartWatch 2的应用最好在应用描述中增加以下内容:
Smart Connect extension for SmartWatch 2
这里讨论的是SmartWatch 2(略过了关于SmartWatch的,更多信息请参考原文)
如果Extension同时使用Control API 和 Notification API,在SmartWatch 2上点击Extension的图标时会弹出Notification页面——即显示最近的Notification。虽然SmartWatch 2还不支持launch mode,但还是建议你在Extension注册时设置Extension的launch mode。这样可以防止未来SmartWatch 2升级(升级后可以支持完整的launch mode)时Extension的launch行为发生变化(未来缺省启动Extension的Control API部分)
Extension将其图片或布局发送到主应用,主应用会将图片和布局转换成配件支持的格式。
Extension使用Control API来控制整个屏幕。为了能支持为SmartWatch写的应用,某些情况下使用Control API提供的显示数据(图片或布局)会被缩放。缩放过程对Extension来说是透明的。主应用自动缩放图片,触摸事件坐标等等,不会影响长宽比。缩放过程保证高度可以填满整个屏幕且正好水平居中。The scaling is triggered if the first display data sent by the Control API after it’s launched is positioned at (0,0) and the display data has a size of 128 x 128 pixels(????不清楚)当Extension不显示时缩放效果不再起作用。如果原始大小是220x176px,不会对显示数据进行任何缩放。
使用Control API的Extension, 可以支持touch(通过CONTROL TOUCH EVENT INTENT, CONTROL OBJECT CLICK EVENT INTENT,
CONTROL LIST ITEM CLICK INTENT或者ControlExtension.onTouch()方法)和swipe手势(通过CONTROL SWIPE EVENT INTENT 或者 ControlExtension.onSwipe()方法)。
当使用布局来绘制时,一屏上同时可以显示的View最多为50个。
见这个文档的第15页