设备管理

登录成功后,可以获取账号下的所有设备,操作设备等功能

获取所有设备

介绍

登录成功后可以获取登录账号下面的所有设备

方法原型

/**
* 获取所有的设备
*
* @param phoneNumber 账号
* @param listener    注册结果监听
*/
public void requestAllDevice(@NonNull String phoneNumber, @NonNull final CloudUrlRequestListener listener)

调用

使用CloudUrlRequest对象调用

参数介绍

  • phoneNumber:当前登录的账号

  • listener:一个CloudUrlRequestListener对象

请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法,参数是一个List<com.youzhuan.mqttclient.device.bean.Device>,包含账号下面所有的音乐主机

请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法,参数请求错误的错误码,详情请参考错误码

com.youzhuan.mqttclient.device.bean.Device

源码

使用get方法获取内容

    private String deviceName;//设备名称
    private String deviceType;//设备类型
    private String deviceId;//设备ID
    private String callbackUrl;//设备callbackUrl
    private String topicUrl;//设备topicUrl
    private String sendTopic;//接收消息的Topic
    private String subscribeTopic;//发送消息的Topic

初始化SDK

获取MqttControlFactory对象

使用MqttControlFactory的静态方法getInstance()直接获取

public static MqttControlFactory getInstance(Context context);

初始化SDK

取所有设备成功后,使用MqttControlFactory对象调用init();方法,初始化成功返回true

public boolean init();

获取MqttControl对象

可以通过该类直接控制设备

获取对象

初始化SKD后可以直接获取该对象,由于机器可能连接在不同的服务器,需要音乐主机连接服务器的地址topicUrl,所以只能在获取到音乐主机对象(Device)后才能获取MqttControl对象

MqttContorl mqttContorl = MqttControlFactory.getInstance().getMqttContorl(device.getTopicUrl());

分享设备

介绍

通过此方法把一个设备分享给另外一个设备

方法原型

/**
* 分享设备
*
* @param phoneNumber 需要分享的账号
* @param listener    注册结果监听
*/
public void requestShareDevice(@NonNull String phoneNumber, final @NonNull CloudUrlRequestListener listener)

调用

使用CloudUrlRequest对象调用

参数介绍

  • phoneNumber:需要分享的账号

  • listener:一个CloudUrlRequestListener对象

分享成功调用CloudUrlRequestListener对象的onResponse(T response);方法,参数是一个ShareDeviceBean的Java Bean对象

请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法,参数请求错误的错误码,详情请参考错误码

删除设备

介绍

通过这个方法可以把已经绑定的设备,取消绑定当前账号,让其他账号绑定

方法原型

 /**
 * 删除设备
 *
 * @param phoneNumber 登录的账号
 * @param sid         分享的分享id
 * @param deviceId    设备的ID
 * @param listener    监听事件
 */
public void requestRemoveDevice(@NonNull String phoneNumber, @NonNull String sid, @NonNull String deviceId, @NonNull final CloudUrlRequestListener listener)

调用

使用CloudUrlRequest对象调用

参数介绍

  • phoneNumber:当前登录的账号

  • sid:分享设备的ID

  • deviceId:音乐主机的设备ID

  • listener:一个实现CloudUrlRequestListener的对象,监听删除账号是否成功

分享成功调用CloudUrlRequestListener对象的onResponse(T response);方法,参数是一个RemoveDeviceBean的Java Bean对象

请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法,参数请求错误的错误码,详情请参考错误码

绑定设备

介绍

通过此方法可以把,一台没有绑定的机器绑定到账号,需要扫描机器段二维码的信息

方法原型

/**
* 绑定设备
* @param scanDeviceBean   机器端二维码的信息
* @param bindDeviceStatus 绑定设备状态监听器
*/
public void bindDevice(@NonNull final ScanDeviceBean scanDeviceBean,@NonNull final BindDeviceStatus bindDeviceStatus)

调用

使用ScanDeviceBean中的topicUrl地址获取MqttControl对象,通过MqttControl对象调用bindDevice方法

参数介绍

  • scanDeviceBean:机器端二维码信息的Java bean对象,扫描二维码后使用该对象解析

  • bindDeviceStatus:一个实现BindDeviceStatus的对象,作为回调对象

绑定成功后会回调bindDeviceStatus对象的bindSuccess();方法

绑定失败后会回调bindDeviceStatus对象的bindFailure();方法

最后更新于