原文地址app
Sony SmartWatch產品是用來補充/擴展Android移動設備功能的配件。SmartWatch爲觸屏配件,使用藍牙跟Android手機或平板通訊。目前該產品包括SmartWatch(MN2)和SmartWatch 2(SW2)。佈局
SmartWatch配置以下:性能
SmartWatch 2配置以下:設計
注意:LED和Text to speech不可用於爲SmartWatch 2開發的appcode
一、藍牙通訊 二、包括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圖片
<table> <tr> <td> 產品 </td> <td> SmartWatch </td> <td> SmartWatch 2 </td> </tr> <tr> <td> 屏幕類型 </td> <td> OLED, 16-bit </td> <td> TFT, 16-bit </td> </tr> <tr> <td> 分辨率 </td> <td> w:128px, h:128px </td> <td> w:220, h:176px </td> </tr>ip
</table>ci
<table> <tr> <td> 產品 </td> <td> SmartWatch </td> <td> SmartWatch 2 </td> </tr> <tr> <td> Control API v1.0 </td> <td> 支持 </td> <td> 支持 </td> </tr> <tr> <td> Control API v2.0 </td> <td>
</td> <td> 支持 </td>
</tr> <tr> <td> Registration & Capabilities API v1.0 </td> <td> 支持 </td> <td> 支持 </td> </tr> <tr> <td> Registration & Capabilities API v2.0 </td> <td>
</td> <td> 支持 </td>
</tr> <tr> <td> Notification API v1.0 </td> <td> 支持 </td> <td> 支持 </td> </tr> <tr> <td> Notification API v2.0 </td> <td>
</td> <td> 支持 </td>
</tr> <tr> <td> Sensor API v1.0 </td> <td> 支持 </td> <td> 支持 </td> </tr> <tr> <td> Widget API v1.0 </td> <td> 支持 </td> <td>
</td>
</tr> </table>
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個。