除了App模板通用的修改外,云智能App 2.X系列模板还支持的自定义内容,如更换主题色、配置UI菜单、对接天猫精灵等。

前提条件

  • 已完成App模板的源码下载。请参见创建自有App
  • 已安装Android App的开发工具,如Android Studio。

修改说明

自定义Android系列的App模板的操作主要分为修改颜色、修改图片、隐藏默认菜单等。

请您使用Android Studio打开App模板的源码,您根据以下方法自定义App。

  • 隐藏菜单

    如果您需要隐藏App中的某菜单,请进入待隐藏模块对应的目录下,修改参数对应的值,如下图所示。

    隐藏配置示例
    说明 参数值为true时表示显示菜单;为false时表示隐藏菜单。
  • 修改图片

    如果您需要修改App中的某张图片,请进入待修改模块图片所对应的目录下,替换目录下的图片。

    修改图片

    修改App图片时,需要注意以下内容。

    • 替换App中图片时,须确保图片名称保持一致。
    • Android工程中的图片,按照分辨率要求,图片所在的目录可能存在以下任一目录下。其中drawable表示默认分辨率,带后缀-xhdpi表示较高分辨率,且x个数表示高级程度。
      • project-source/src/main/res/drawable
      • project-source/src/main/res/drawable-xhdpi
      • project-source/src/main/res/drawable-xxhdpi
      • project-source/src/main/res/drawable-xxxhdpi
  • 修改颜色

    如果您需要修改App中的颜色,请进入待修改模块颜色所对应的目录下,修改参数对应的值,如下图所示。

    修改颜色示例
    说明 如果您需要修改App的主题色,请在project-source/src/main/res/values/resources.xml文件中,修改color_custom_action参数的值。

修改注册登录页

云智能2.X系列App模板的默认注册登录页如下图所示。

注册登录页

注册登录页面支持您修改以下内容。

  • 修改图片
    目的 操作目录(或文件) 替换图片名称
    修改背景图 project-source/src/main/res/drawable login_background_pic.png
    修改顶部图标 login_welcom.png
  • 修改颜色
    目的 操作目录(或文件) 修改参数的值
    修改背景色 project-source/src/main/res/values/resources.xml color_custom_theme
    修改登录按钮的背景颜色 color_custom_login_background
    修改登录按钮文字的颜色 color_custom_login_text
    修改注册按钮边框的颜色 color_custom_register_background_border
    修改注册按钮文字颜色 color_custom_register_text
    标题颜色(欢迎使用...) color_custom_login_title
    说明 注册按钮的背景颜色为透明色,因此只能修改注册按钮的边框颜色。

修改App底部菜单

云智能2.X系列App模板的底部有三个菜单,分别为:家、智能、我的。如下图所示。

主菜单

App底部菜单支持您修改以下内容。

  • 隐藏菜单
    目的 操作目录(或文件) 修改参数的值
    隐藏菜单 project-source/src/main/res/values/resources.xml visibility_page_home
    隐藏智能菜单 visibility_page_intelligence
    隐藏我的菜单 visibility_page_mine
  • 修改菜单的图标
    图标 是否为选中状态 操作目录(或文件) 替换图片(名称须一致)
    project-source/src/main/res/drawable-xxhdpi ilop_home_device_selected.png
    ilop_home_device.png
    智能 ilop_home_scene_selected.png
    ilop_home_scene.png
    我的 ilop_home_mine_selected.png
    ilop_home_mine.png
  • 修改颜色
    目的 操作目录(或文件) 修改参数的值
    修改选中菜单时的颜色(包括菜单图片、文字的颜色) project-source/src/main/res/values/resources.xml app_custom_home_tab_img_tint
    说明 该参数的值,会对图片的颜色进行强制渲染。例如配置为红色后,图片的颜色会变成红色。

修改家菜单页

云智能2.X系列App模板的默认家菜单页(即首页)的界面如下图所示。

首页

菜单页(即首页)支持修改以下内容。

  • 修改图片
    图标 操作目录(或文件) 替换图片(名称须一致)
    修改背景图 project-source/src/main/res/drawable-xxxhdpi page_device_background.png
    修改空列表背景图 device_home_bg.png
  • 修改主颜色

    请您参照配置示例在project-source/src/main/res/values/resources.xml文件中修改菜单页中的颜色,详细参数请参见源码中的注释。修改方法请参见修改说明

修改智能菜单页

云智能2.X系列App模板的默认智能页如下图所示。

默认场景空态图

智能菜单页支持修改的内容包括:主题色、背景图、空列表背景图(列表为空时的背景图,即上图中加号位置的背景图)等。

  • 修改图片
    图标 操作目录(或文件) 替换图片(名称须一致)
    修改背景图 project-source/src/main/res/drawable-xxxhdpi scene_empty_default.png
    修改自动化的空列表背景图 scene_auto_empty_default.png
    修改场景的空列表背景图 scene_empty_default.png
  • 修改颜色

    请您参照配置示例在project-source/src/main/res/values/resources.xml文件中修改智能菜单页中的颜色,详细参数请参见源码中的注释。修改方法请参见修改说明

修改我的菜单页

云智能2.X系列App模板的默认我的菜单页如下图所示。

我的菜单页

我的菜单页中支持修改以下内容。

  • 自定义功能列表
    • 隐藏功能列表
      目的 操作目录(或文件) 修改参数的值
      隐藏小组件 project-source/src/main/res/values/resources.xml visibility_small_component
      隐藏智能日志 visibility_intelligence_log
      隐藏意见反馈 visibility_feedback
      隐藏设置 visibility_settings
      隐藏关于 visibility_about
      隐藏更多服务 visibility_more_services
      说明 我的菜单页中,个人信息编辑、消息中心、设备共享,三个功能模块不支持隐藏。
    • 修改功能列表的图标
      目的 操作目录(或文件) 替换图片(名称须一致)
      修改默认头像 project-source/src/main/res/drawable-xxhdpi ilop_mine_home_avatar_default.png
      修改小组件的图标 ilop_mine_entry_widget.png
      修改意见反馈的图标 ilop_mine_entry_feedback.png
      修改消息中心的图标 ilop_mine_entry_message.png
      修改智能日志的图标 ic_scene_logcat.png
      修改设备共享的图标 ilop_mine_entry_device_share.png
      修改更多服务的图标 ilop_mine_entry_more.png
      修改设置的图标 ilop_mine_entry_settings.png
      修改关于的图标 ilop_mine_entry_about.png
  • 自定义设置页面 设置页面

    您除了可以隐藏整个设置功能,还可以分别隐藏设置的子功能。

    目的 操作目录(或文件) 修改参数的值
    隐藏固件升级 project-source/src/main/res/values/resources.xml visibility_setting_ota
    隐藏语言 visibility_setting_language
  • 自定义关于页面 关于页面

    您除了可以隐藏整个关于功能,还可以分别隐藏关于的子功能。

    目的 操作目录(或文件) 修改参数的值
    隐藏当前版本 project-source/src/main/res/values/agreement_privacy.xml visibility_about_version
    隐藏隐私权政策 custom_mine_url_privacy_policy
    隐藏服务协议 custom_mine_url_service_protocol
    隐藏开源软件使用协议 visibility_about_privacy_policy
    说明 隐藏隐私权政策隐藏服务协议的参数值默认为空,即App页面不显示。如果您需要配置相关内容,请参见本文档下方修改登录的服务协议的内容来配置。
  • 自定义更多服务页面

    更多服务中展示了对接的三方平台,仅对接天猫精灵的源码开源。对接天猫精灵的详细对接操作请参见自有App接入天猫精灵教程。您也可以自行对接更多三方平台。

    更多服务
    说明 对接三方平台时,为保证页面可以正常跳转,请勿修改以下代码。其中/page/me/tp我的 > 更多服务模块名称,TripartitePlatformListActivity是模块的入口类。
    <activity
        android:name=".activity.TripartitePlatformListActivity"
        android:exported="false"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="com.aliyun.iot.aep.action.navigation" />
    
            <category android:name="android.intent.category.DEFAULT" />
    
            <data
                android:host="com.aliyun.iot.ilop"
                android:path="/page/me/tp"
                android:scheme="https" />
        </intent-filter>
    </activity>

修改登录的服务协议

云智能App的我的 > 关于页面中默认有三个法律协议,分别是:隐私权政策、服务协议、开源软件使用协议。其中隐私权政策和服务协议在登录App时会自动弹出,如下图所示。

服务协议

云智能2.X系列App模板的法律声明及隐私权政策软件服务协议默认为隐藏,即登录App时不会弹出上图服务协议的页面。如果您希望登录App后弹出该页面,请根据以下步骤配置服务协议,服务协议为URL格式。

  1. 进入工程的project-source/src/main/res/values/agreement_privacy.xml文件。
  2. 配置custom_privacy_policy_url_china_publish参数的值。
    • 参数值为空时,隐藏服务协议页面。
    • 参数值不为空时,账号登录App后,弹出服务协议页面。

    示例如下:

    <string name="custom_privacy_policy_url_china_publish">https://xxxxxx</string>
      //登录后弹出服务协议页面,页面的URL为https://xxxxxx
  3. (可选)当参数值不为空时,处理页面跳转事件。

    服务协议页面包含“软件服务协议”、“法律声明及隐私权政策”、“同意”、“不同意”四个事件。请根据以下示例修改事件的URL。

    • 软件服务协议

      URL中需包含agree-software,例如http://x.xxx.com/agree-software.html?visibility=undefined&navbarHide=true

    • 法律声明及隐私权政策

      URL中需包含legalNotice,例如http:/x.xxxx.xxx/legalNotice.html?visibility=undefined&navbarHide=true

    • 同意

      URL中需包含action=agree,例如http://xxx.xxx.com/privacy?action=agree

    • 不同意

      URL中需包含action=disagree,例如http://xxx.xxx.com/privacy?action=disagree