# hedou_sdk_demo **Repository Path**: numeron/hedou_sdk_demo ## Basic Information - **Project Name**: hedou_sdk_demo - **Description**: 演示了hedou_android_sdk的使用方法。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-30 - **Last Updated**: 2021-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### hedou_android_sdk的使用方法 此工程的app模块中已包含检测第三方模块的功能,可将此工程的代码下载到本地,并尝试新增自己的模块,运行后,页面上显示了新增的模块并且可以进入,则说明第三方模块是可用的。 * 此SDK为smop的第三方开发包,用于第三方软件开发厂商向smop中添加功能的SDK。 * 此SDK非公开版本,使用方不得以任何方式传播此SDK。 #### 安装SDK * 获取SDK包,请联系QQ:`794876771`或微信:`kIlj4171` * 进入`C:\用户\{当前用户}\.m2\repository`目录,请SDK压缩包解压至该目录下。 * 进入`com`文件夹,检查是否存在`provider`和`numeron`文件夹,如图所示: ![image](https://gitee.com/numeron/hedou_sdk_demo/raw/master/procedures/procedure_1.png) #### 引入SDK * 打开项目根目录下的`build.gradle`,在适当的位置添加以下代码: ```groovy allprojects { repositories { google() jcenter() //添加以下两行代码 mavenLocal() maven { url 'https://jitpack.io' } } } ``` * 打开模块下的`build.gradle`,在适当的位置添加以下代码: ```groovy dependencies { //添加以下代码 implementation 'com.hedou:provider:1.0.0' } ``` #### 添加启动图标 * 创建一个类,实现`INavigator`接口,如: ```kotlin class OtherNavigator : INavigator { /** 模块的唯一编码 */ override val code: String = "module identity code" /** 模块的启动ID */ override val identity: Int = R.id.id_module_other /** 模块的图标资源ID */ override val icon: Int = R.drawable.ic_module_other /** 模块的名称资源ID */ override val nameResId: Int = R.string.name_module_other /** 模块的导航资源ID */ override val navResId: Int = R.navigation.nav_module_other } ``` * 在`main`目录下,创建`resources/META-INF/services`目录,并在此目录下添加一个名为`com.hedou.provider.util.abs.INavigator`的文件,并以text的编辑方式打开,将上面实现`INavigator`的类的全路径填写到此文件中,如图所示: ![image](https://gitee.com/numeron/hedou_sdk_demo/raw/master/procedures/procedure_2.png) 一个模块可创建多个启动图标,只需要创建新的类并实现`INavigator`接口,并将该实现类的全路径另起一行添加到`resources/META-INF/services/com.hedou.provider.util.abs.INavigator`文件中即可。 #### 添加初始化器 * 创建一个类,实现`IInitializer`接口,如: ```kotlin class OtherModuleInitializer : IInitializer { override fun init(application: Application) { //在此处初始化各类数据 } } ``` * 在`main`目录下,创建`resources/META-INF/services`目录,并在此目录下添加一个名为`com.hedou.provider.util.abs.IInitializer`的文件,并以text的编辑方式打开,将上面实现`IInitializer`的类的全路径填写到此文件中,如图所示: ![image](https://gitee.com/numeron/hedou_sdk_demo/raw/master/procedures/procedure_3.png) 一个模块只建议使用一个初始化器。 #### 可用API | 功能说明 | 调用方法(kotlin) | 调用方法(java) | |------------------------------|---------------------------------|------------------------------------------| | 获取当前登录用户 | AppRuntime.currentUser | AppRuntime.INSTANCE.getCurrentUser() | | 获取当前用户的默认部门 | AppRuntime.currentDepartment | AppRuntime.INSTANCE.getCurrentDepartment() | | 注销登录 | context.sendBroadcast(Intent("ACTION_SIGN_OUT_BROADCAST_RECEIVER")) | context.sendBroadcast(new Intent("ACTION_SIGN_OUT_BROADCAST_RECEIVER")) | #### 可用控件 | 功能说明 | 静态创建方法(xml) | 动态创建方法(kotlin/java)| |----------|-----------------|-------------------------| | 选择部门 | N/A | DepartmentSelectView | | 选择日期 | N/A | DateTimePickView | #### 可用页面 | 功能说明 | 调用方法 | 可选参数 | |---------|----------|----------| | 选择用户 | navController.navigate(R.id.actionToUserListFragment) | EXTRA_KEY_USER_SELECT_COUNT(需要选择多少个用户),EXTRA_KEY_SELECTED_USERS(已选择的用户列表),EXTRA_KEY_SELECTED_USER_IDS(已选择的用户ID列表) | | 选择设备 | navController.navigate(R.id.actionToAssetListFragment) | EXTRA_KEY_REQUEST_ASSET(选择模式) |