IWDS服务

IWDS服务为穿戴式设备提供了常用的服务组件,简化了应用开发,这些服务通过统一的框架进行管理,用户只需要连接服务获取该服务的一个实例即可使用服务,不用关心何时启动服务,而且可以允许多个客户端同时访问。

Android IWDS服务相关

基本概念

ServiceManagerContext

它是所有IWDS服务组件的基类,用户只要获取到相应服务组件的一个实例对象,就可以调用服务的方法。

ServiceClient

访问IWDS系统服务的客户端,用户要使用IWDS系统服务需要现实例化一个ServiceClient客户端对象,指明需要访问的服务名以及回调接口对象,然后连接服务,连接成功后在回调里获取该服务的一个实例就可以访问服务了。

ConnectionCallbacks

连接IWDS系统服务需要提供的回调接口(ServiceClient中定义的),连接成功时获取的服务实例对象才能使用,断开连接后服务实例对象失效。

public static abstract interface ConnectionCallbacks {

        /**
         * 连接成功
         * 
         * @param serviceClient
         *            ServiceClient 对象
         */
        void onConnected(ServiceClient serviceClient);

        /**
         * 断开连接
         * 
         * @param serviceClient
         *            ServiceClient 对象
         * @param unexpected
         *            表示连接断开是否因为意外情况造成。true 意外,false 非意外
         */
        void onDisconnected(ServiceClient serviceClient, boolean unexpected);

        /**
         * 连接失败
         * 
         * @param serviceClient
         *            ServiceClient 对象
         * @param reason
         *            连接失败的原因
         */
        void onConnectFailed(ServiceClient serviceClient,
                ConnectFailedReason reason);
    }

使用方法

1. 首先通过ServiceClient对象并传递要访问的服务组件名(ServiceManagerContext中定义了个中服务名)参数连接设备管理服务 。

ServiceClient mServiceClient = new ServiceClient(mContext,
                ServiceManagerContext.XXX, mConnectionCallbacks);
mServiceClient.connect();

2. 然后在连接成功后的回调函数里获取服务实例对象,获取到实例后就可以调用其公开接口进行设备管理相关操作了。

public void onConnected(ServiceClient serviceClient) {
    mXXXManager = (XXXManager) serviceClient.getServiceManagerContext();

3. 如果应用退出或不需要使用服务了,需要释放连接的服务。

public void onDisconnected(ServiceClient serviceClient, boolean unexpected) {
    serviceClient.disconnect();
    mXXXManager = null;
}

iOS IWDS服务相关

客户端注意事项

1. 在使用IWDS服务的时候必须让AppDelegate继承IWDSAppDelegate,并且在 application:didFinishLaunchingWithOptions: 方法中调用 initializeDevices:deviceSubClass: 来初始化设备信息,这样在后续开发中才能正常使用IWDS相关服务的功能;

2. IWDS服务目前使用蓝牙BLE进行通讯,为确保应用在后台模式下也能与智能穿戴式设备进行正常通讯,因此必须为应用开启蓝牙后台模式 (User Bluetooth LE accessory);

3. 目前Iwds.framwork也能支持CocoaPods方式引入,在Podfile中加入 pod 'IwdsSDK', '~> 1.3.0'即可。

 

资源下载

repo init -u ssh://sz_watch@git1.ingenic.cn:29418/elf/manifests.git -b release-5.1 -m elf-only.xml

 

Android相关资源简介:

手表iwds应用依赖的库:elf/JavaDocAndBuildOut/iwds-api2-release/user/

手表和手机iwds服务依赖的库:elf/JavaDocAndBuildOut/iwds-api2-release/server/libs/

手表iwds服务:elf/JavaDocAndBuildOut/watchapp/iwds-device.apk

手表助手demo(运行在手机端): elf/watch-manager/

手表iwds应用demo: JavaDocAndBuildOut/demo/samples

 

IOS相关资源简介:

ios iwds服务依赖的库(Iwds.framework): elf/JavaDocAndBuildOut/iwds-api2-release/server/libs/ios/Iwds

 
手表助手demo(运行在手机端):elf/watch-manager-for-ios
    注:不使用pod方式的工程:WatchManagerWithoutPods.xcodeproj;
          使用pod方式的工程:请参考 elf/JavaDocAndBuildOut/iwds-api2-release/doc/ios_doc/CocoaPods安装及使用.pdf
 
ios iwds demo(运行在手机端):elf/samples-for-ios