华为HILENS-初始化HiLens Framework

时间:2024-07-02 21:00:16

初始化HiLens Framework

该接口用于初始化HiLens Framework。在调用HiLens Framework的其他接口之前,需要先做全局初始化。

  • 接口调用

    hilens.init(verify)

  • 参数说明
    表1 参数说明

    参数名

    是否必选

    参数类型

    描述

    verify

    字符串

    长度0到128的字符串。

    应与华为HiLens管理控制台上新建技能时,所填写的“基本信息”中的“检验值”一致。如果不一致,HiLens Framework会强制技能停止。

    图1 新建技能
  • 返回值

    0为HiLens Framework初始化成功,其他为失败。

    该方法还可以用来验证技能是否损坏或被篡改。如果想要使用该功能,参数verify应该是开发者编写的一个函数的返回值,该返回值是实时计算要验证的文件的hash值。开发者在完成技能的开发后,用同样的hash方法计算出hash值,填入控制台新建技能的校验值。如下所示:

    #! /usr/bin/python3.7
    
    import hilens
    def verify():   
        # 开发者需要实现一个方法,来验证程序身份(以防被损坏、篡改)
        # 例如可以计算技能包中重要文件的Hash值,verify应当返回一个字符串(1~128字节)。
        # 在HiLens平台,技能开发中填入此Hash值。调用init方法后,技能会自动将此Hash值发送到平台上进行比对,并验证技能的使用许可。
    
        # 调试期间,开发者可以考虑使用一个固定的字符串来进行校验,以便于修改代码。
        # 因为Python脚本源码下发到设备上较容易篡改,对于商用技能,建议开发者使用C++进行开发。
        # 注意:正式发布的技能不应使用硬编码的字符串来校验!
        return "hello"
    
    def main():
        # 初始化HiLens
        rc = hilens.init(verify())
        # 如果在技能开发调试阶段不想用此功能,那么直接填写一个静态字符串即可
        # 如: hilens.init("hello")
        if rc != 0: 
           hilens.error("Failed to initialize HiLens")
           return 
    
       # 业务代码
        pass
    
        # 完成后,清理资源
        hilens.terminate()
    
    if __name__ == '__main__':
        main()
support.huaweicloud.com/devg-hilens/hilens_05_0006.html