← 返回
未分类 Key

Android Smssdk Integration

Interactive guide for integrating MobTech SMSSDK (短信验证) into Android projects with 6-step workflow. Use when user says "我要在app中增加短信验证", "SMSSDK集成", "Android短...
交互式指南,帮助在 Android 项目中集成 MobTech SMSSDK(短信验证),包含 6 步工作流。适用于用户说“我要在 app 中增加短信验证”、 “SMSSDK 集成”、 “Android 短...”
mobsupport
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 286
下载
💾 0
安装
1
版本
#latest

概述

Android SMSSDK (短信验证) 集成 Skill

适用场景

当用户提到以下任一主题时,使用本 skill:

  • android smssdk
  • 短信验证集成
  • 短信验证码
  • 语音验证码
  • SMSSDK SDK 接入
  • 我要在app中增加短信验证
  • 我要在Android项目中接入短信验证码功能
  • 帮我配置短信验证
  • 一键集成 SMSSDK
  • 快速接入短信验证
  • 自动配置 SMSSDK

如果用户问题明确与 Android 的短信验证接入、工程配置、验证码功能、自定义 UI 有关,应优先使用本 skill。


6 步交互式集成工作流

当用户表达集成 SMSSDK 的意图时,执行以下 6 步交互式流程。每步操作前都需要展示内容给用户确认,获得明确同意后再执行。


步骤 1:启动流程

1-1 触发识别

用户可能通过以下方式表达集成意图:

  • "我要在app中增加短信验证"
  • "帮我集成 SMSSDK 到 Android 项目"
  • "配置短信验证"
  • "一键集成短信验证"
  • "Android 短信验证码功能怎么接入"

1-2 询问项目路径

主动询问用户

我来帮你集成 SMSSDK 短信验证功能。

请提供需要集成的 Android 项目根路径,例如:
/Users/xxx/your-android-project

请确保项目包含 app/build.gradle 文件。

1-3 验证路径合法性

验证逻辑

  1. 检查路径是否存在
  2. 检查路径下是否有 app/build.gradlesettings.gradle 文件
  3. 检查是否为有效的 Android 项目结构

如果路径不合法

路径验证失败,可能原因:
- 路径不存在:{path}
- 未找到 app/build.gradle 文件,请确认这是 Android 项目根目录

请重新提供正确的项目路径。

如果路径合法:进入步骤 2


步骤 2:注册 SMSSDK 配置信息

2-1 生成配置模板文件

操作

  1. 在 skill 目录中运行 Python 脚本生成 SMSSDK_Config_Template.xlsx

```bash

python {skill_dir}/assets/generate_excel_template.py

```

  1. 将生成的 SMSSDK_Config_Template.xlsx 复制到用户项目根目录,命名为 SMSSDK_Config.xlsx

告知用户

已在你项目的根目录生成 {path}/SMSSDK_Config.xlsx 配置文件。

请打开该文件,按以下步骤填写:
1. 在"基础信息"Sheet 中填写 MobTech 的 appKey 和 appSecret
   (从 https://www.mob.com/ 注册应用获取)
2. 填写 Android 包名
3. "短信签名审核"Sheet 中填写短信签名信息(企业需审核,个人使用默认【掌淘科技】)
4. "填写说明"Sheet 中有详细说明

⚠️ 重要提醒:
- 短信签名审核通过后才能正常下发短信
- 请前往 MobTech 开发者工作台提交短信签名审核
- 国际短信签名无需审核,直接自行输入英文即可

填写完成后告诉我"填好了",我将继续下一步。

2-2 等待用户填写完成

等待用户回复"填好了"或类似表达。

2-3 读取并验证配置

操作:读取用户项目根目录的 SMSSDK_Config.xlsx 文件

验证规则

检查项规则不通过时的提示
-----------------------------
appKey必填,不能为空字符串"基础信息 Sheet 中的 appKey 未填写,请从 MobTech 官网获取"
appSecret必填,不能为空字符串"基础信息 Sheet 中的 appSecret 未填写"
包名必填,格式应为 com.xxx.xxx"包名格式不正确,应为 com.xxx.xxx 格式"

类型转换规则

  • appKeyappSecret包名 等标识符字段:强制转为字符串(加引号)

如果不合法

配置信息验证失败,请修正以下问题:

{具体问题列表}
- 第 1 条:{问题描述}
- 第 2 条:{问题描述}

请修改 Excel 文件后保存,然后重新告诉我"填好了"。

如果合法:提取配置信息,进入步骤 3


步骤 3:完成 SDK 集成

3-1 Gradle 环境配置

根据项目 AGP 版本(通过检查 gradle/wrapper/gradle-wrapper.properties 中的 distributionUrl 判断),选择对应配置方式。

【7.0及以上版本】

文件 1:settings.gradle(AGP 7.0+)

展示内容

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
        maven { url "https://mvn.mob.com/android" }
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
        maven { url "https://mvn.mob.com/android" }
    }
}
文件 2:项目级 build.gradle

展示内容

buildscript {
    dependencies {
        // 增加 MobSDK 插件配置
        classpath "com.mob.sdk:MobSDK2:+"
        // 如需集成 FCM,增加以下配置(非必须)
        classpath 'com.google.gms:google-services:4.3.14'
    }
}

7.0以下版本

在项目级 build.gradle 中配置:

allprojects {
    repositories {
        maven { url "https://mvn.mob.com/android" }
    }
}

buildscript {
    repositories {
        maven { url "https://mvn.mob.com/android" }
    }
    dependencies {
        // 增加 MobSDK 插件配置
        classpath "com.mob.sdk:MobSDK2:+"
    }
}
文件 3:gradle.properties

主动询问是否上架googleplay

如果开发者回答:是/YES

则配置

MobSDK.spEdition=GPP

否则(否/NO): 则使用如下配置

MobSDK.spEdition=FP
文件 4:app/build.gradle

生成规则

  1. 类型转换appKeyappSecret 等标识符:强制转为字符串(加引号)

展示内容

// 在文件开头添加插件(根据你的 plugins 块结构选择一种)

// 方式 A
apply plugin: 'com.mob.sdk'

// 方式 B
plugins {
    id 'com.android.application'
    id 'com.mob.sdk'
}

// 在文件末尾添加 MobSDK 配置代码
MobSDK {
    appKey "{用户填写的appKey}"
    appSecret "{用户填写的appSecret}"
    SMSSDK {}
}

询问:"以上是要添加到 app/build.gradle 的内容,是否确认修改?"

3-2 执行 Gradle Sync

说明:修改 build.gradle 后,需要同步 Gradle 配置才能生效:

  • 命令行 ./gradlew:下载依赖、编译代码
  • Android Studio Sync:让 IDE 解析 build.gradle 配置,更新项目结构索引

尝试自动执行

cd {project_path}
./gradlew --refresh-dependencies

如果成功

命令行 Gradle Sync 成功,依赖已拉取。

⚠️ 如果你在 Android Studio 中开发,请再执行一次 IDE Sync:
1. 打开 Android Studio
2. 点击菜单栏 File -> Sync Project with Gradle Files
3. 或点击右上角大象图标(Sync Now)

如果失败

自动 Gradle Sync 失败,可能原因:
- Gradle 未配置环境变量
- 网络问题无法下载依赖

请在 Android Studio 中手动执行:
1. 打开项目
2. 点击菜单栏 File -> Sync Project with Gradle Files
3. 或点击 Gradle 面板中的刷新按钮

至此,Gradle集成方式环境搭建已经完成。

进入步骤 4


步骤 4:补充隐私合规

4-1 说明隐私授权

向用户说明

根据工信部合规要求和 MobTech 隐私合规规范,使用 SMSSDK 需要在用户同意《隐私政策》后才能初始化 SDK。

你需要在 App 中:
1. 首次启动时展示《隐私政策》弹窗
2. 用户点击"同意"按钮后,调用隐私授权代码
3. 用户点击"不同意"则不应调用

请告知我:用户点击隐私政策"同意"按钮的回调代码在哪个文件、哪个方法中?
例如:MainActivity.java 的 onPrivacyAgreed() 方法

等待用户告知具体的文件路径和方法名。

展示要插入的代码

// 用户同意隐私政策后调用
MobSDK.submitPolicyGrantResult(true);

完整示例

public void onPrivacyAgreed() {
    // 用户点击同意按钮
    
    // === SMSSDK 隐私授权 ===
    MobSDK.submitPolicyGrantResult(true);
    // ==========================
    
    // 其他业务逻辑...
}

4-2 确认隐私授权代码

询问"以上代码将插入到 {文件} 的 {方法} 中,是否确认?"

4-3 执行插入

用户确认后,将代码插入指定位置。

进入步骤 5


步骤 5:插入短信验证代码

5-1 询问集成方式

说明:SMSSDK 支持两种使用方式:

  1. 自带 UI 页面(快速集成):SDK 提供默认注册页面,一行代码拉起
  2. 自定义集成(灵活定制):自己写 UI,调用 SDK 底层接口

询问"请选择集成方式:\n1. 自带 UI 页面(快速,一行代码拉起默认注册页)\n2. 自定义集成(灵活,自己写 UI + 调用底层接口)\n\n回复 1 或 2。"

5-2 方式一:自带 UI 页面

等待用户告知:要插入代码的文件路径和方法名。

展示要插入的代码

// === SMSSDK 自带 UI 页面 ===
RegisterPage page = new RegisterPage();
page.setTempCode(null); // 未申请模板编号时传 null
page.setRegisterCallback(new EventHandler() {
    @Override
    public void afterEvent(int event, int result, Object data) {
        if (result == SMSSDK.RESULT_COMPLETE) {
            // 成功回调
            if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                // 提交验证码成功
            } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                // 获取验证码成功
            }
        } else {
            // 失败回调
            ((Throwable) data).printStackTrace();
        }
    }
});
page.show(context);
// ==========================

询问"以上代码将插入到 {文件} 的 {方法} 中,是否确认?"

用户确认后,将代码插入指定位置。

5-3 方式二:自定义集成

等待用户告知:要插入代码的文件路径和方法名。

展示要插入的代码

注册 EventHandler

// 注册短信回调(建议在 onCreate 中调用)
EventHandler eh = new EventHandler() {
    @Override
    public void afterEvent(int event, int result, Object data) {
        if (result == SMSSDK.RESULT_COMPLETE) {
            // 成功回调
            if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
                // 提交验证码成功
                // TODO 利用验证码进行后续操作
            } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
                // 获取验证码成功
                // TODO 提示用户查收短信
            } else if (event == SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE) {
                // 获取语音验证码成功
            } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
                // 返回支持发送验证码的国家列表
            }
        } else {
            // 失败回调
            ((Throwable) data).printStackTrace();
        }
    }
};
SMSSDK.registerEventHandler(eh);

获取验证码

// 请求文本验证码(不带模板编号)
SMSSDK.getVerificationCode("86", "手机号");

// 请求语音验证码(需先发送完文本验证码)
SMSSDK.getVoiceVerifyCode("86", "手机号");

// 提交验证码
SMSSDK.submitVerificationCode("86", "手机号", "验证码");

注销监听(建议在 Activity 的 onDestroy 中调用):

SMSSDK.unregisterEventHandler(eh);

询问"以上代码将插入到 {文件} 的 {方法} 中,是否确认?"

用户确认后,将代码插入指定位置。

进入步骤 6


步骤 6:完成集成

6-1 生成项目级 README

操作:在用户项目根目录生成 SMSSDK_README.md,内容包含集成说明、关键文件位置、后续修改指引。

6-2 完成告知

向用户说明

SMSSDK 集成已完成!

📁 生成的文件:
- {project_path}/SMSSDK_README.md — 集成说明文档

📝 后续修改位置:
- 修改 SDK 配置:app/build.gradle 中的 MobSDK { } 块
- 修改隐私授权位置:{privacy_file} 的 {privacy_method} 方法
- 修改短信回调:{callback_file} 的 {callback_method} 方法

📖 更多帮助:
- 短信验证集成指南:https://mob.com/wiki/detailed?wiki=440&id=23
- SDK API:https://mob.com/wiki/detailed?wiki=440&id=23
- 产品简介:https://mob.com/wiki/detailed?wiki=163&id=23
- 合规指南:https://mob.com/wiki/detailed?wiki=210&id=23
- 服务端验证 API:https://mob.com/wiki/detailed?wiki=112&id=23
- 短信设置:https://mob.com/wiki/detailed?wiki=452&id=23
- 常见问题:https://mob.com/wiki/detailed?wiki=123&id=23

⚠️ 重要提醒:
1. 确保短信签名审核已通过(否则无法正常下发短信)
2. 确保包名与 MobTech 后台配置一致
3. 必须配置《隐私政策》并在用户同意后调用 submitPolicyGrantResult
4. Android 9.0+ 如需 HTTP 请求需配置 usesCleartextTraffic="true"
5. 回调 afterEvent 在子线程,不可直接处理 UI,需传到主线程

附录:技术参考

A. Gradle 配置参考

A.1 Gradle 插件 7.0 及以上

settings.gradle 中:

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
        maven { url "https://mvn.mob.com/android" }
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
        maven { url "https://mvn.mob.com/android" }
    }
}

在项目级 build.gradle 中:

buildscript {
    dependencies {
        classpath "com.mob.sdk:MobSDK2:+"
    }
}

A.2 Gradle 插件 7.0 以下

在项目级 build.gradle 中配置:

allprojects {
    repositories {
        maven { url "https://mvn.mob.com/android" }
    }
}
buildscript {
    repositories {
        maven { url "https://mvn.mob.com/android" }
    }
    dependencies {
        classpath "com.mob.sdk:MobSDK2:+"
    }
}

A.3 应用级启用插件

// 方式 A
apply plugin: 'com.mob.sdk'

// 方式 B
plugins {
    id 'com.android.application'
    id 'com.mob.sdk'
}

A.4 gradle.properties 配置

MobSDK.spEdition=FP  // 上架 Google Play 则改为 GPP

B. 短信 SDK API

B.1 注册回调

EventHandler eh = new EventHandler() {
    @Override
    public void afterEvent(int event, int result, Object data) {
        if (result == SMSSDK.RESULT_COMPLETE) {
            // 成功
        } else {
            // 失败
            ((Throwable) data).printStackTrace();
        }
    }
};
SMSSDK.registerEventHandler(eh);

B.2 获取验证码

// 文本验证码
SMSSDK.getVerificationCode("86", "手机号");

// 带模板编号
SMSSDK.getVerificationCode("模板编号", "86", "手机号");

// 语音验证码(需先发送完文本验证码)
SMSSDK.getVoiceVerifyCode("86", "手机号");

B.3 提交验证码

SMSSDK.submitVerificationCode("86", "手机号", "验证码");

B.4 获取国家列表

SMSSDK.getSupportedCountries();

B.5 注销监听

SMSSDK.unregisterEventHandler(eh);

B.6 本机号码验证(可选)

// 获取 token
SMSSDK.getToken();

// 验证本机号码
SMSSDK.login("手机号", new TokenVerifyResult("opToken", "token", "operator"));

> 注意:当同时使用秒验(MSSDK)和短信(SMSSDK)时,默认支持本机号验证,不需要不能通过开关打开。仅单独使用短信 SDK 时才需要配置 mobileAuth true


C. 隐私合规要求

必须提醒用户:

  1. App 需要有《隐私政策》
  2. 隐私政策中必须明确说明使用 MobTech 短信验证服务
  3. 首次冷启动展示隐私政策并获取用户同意
  4. 同意后调用 MobSDK.submitPolicyGrantResult(true)
  5. 不同意时不能调用该方法

隐私政策参考条款:

> "我们使用了第三方(上海掌之淘信息技术有限公司,以下称"MobTech")MobTech 短信验证服务为您提供短信验证功能。为了顺利实现该功能,您需要授权 MobTech SDK 提供对应的服务;在您授权后,MobTech 将收集您相关的个人信息。"

完整合规指南:https://mob.com/wiki/detailed?wiki=210&id=23


D. 短信签名审核

SMSSDK 需要短信签名才能下发短信。

签名类型要求(自 2025-08-01 起):

  • 公司签名(推荐):与企业营业执照名称完全一致,或简称需包含在营业执照全称中
  • 商标签名:商标需已在中国商标网完成注册
  • ~~网站/公众号/小程序签名~~(已不再支持)

个人用户:默认使用【掌淘科技】签名

企业用户:需上传营业执照审核

国际短信签名:无需审核,直接自行输入英文即可。


E. 常见问题排查

问题可能原因
----------------
验证码发送失败短信签名未审核通过、包名不一致、网络异常
验证码接收慢运营商通道问题,可尝试语音验证码
Gradle Sync 失败仓库地址配置错误、网络问题
回调在子线程afterEvent 在子线程执行,处理 UI 需传到主线程
服务端验证失败未开启服务端验证开关、IP 未加入白名单

回答边界

  • 仅聚焦 Android SMSSDK 工程集成与合规
  • 不扩展到 iOS、服务端(仅参考服务端验证 API 文档)、非 MobTech SDK
  • 不伪造真实账号、密钥、签名值

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-08 02:41 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Andorid Flyverify Integration

mobsupport
交互式指南,帮助将 MobTech FlyVerify (SecVerify) 集成到 Android 项目,采用 5 步工作流。适用于用户说“我要在 app 中增加一键登录”、“秒验集成”、“FlyV...”
★ 1 📥 409

Harmonyos Sharesdk Integretion

mobsupport
交互式指南:在HarmonyOS NEXT项目中集成MobTech ShareSDK,用于ShareSDK分享或华为授权。
★ 0 📥 313

Mob Android Sharesdk Integration

mobsupport
交互式指南,介绍如何在Android项目中集成MobTech ShareSDK,包含6步工作流程。当用户说"我要在app中增加分享能力"、"ShareSDK集成"、"Android分享功能"时使用此技能。
★ 0 📥 356