@SuppressLint("StaticFieldLeak")
public void sendCode(final String phone) {
new AsyncTask() {
boolean res;

        @Override
        protected Void doInBackground(Void... params) {
            try {
                AVOSCloud.requestSMSCode(phone, "Android武汉老人", "注册", 1);
                res = true;
            } catch (AVException e) {
                e.printStackTrace();
                res = false;
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            if (res) {
                AppToast.showShortText(context, R.string.sendSucceed);
            } else {
                AppToast.showShortText(context, R.string.sendFailed);
                time.cancel();
                mRightbtn.setText("获取验证码");
                mRightbtn.setClickable(true);
                x = 0;
            }
        }
    }.execute();
}

报错,发送失败

异常
com.avos.avoscloud.AVException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

代码参考
https://github.com/leancloud/android-sms-demo2

你好,请问使用哪个版本的 SDK?

具体执行哪个方法报错?并麻烦把请求的 curl 日志粘贴出来,看一下问题的原因。

开启调适日志的方法;

// 放在 SDK 初始化语句 AVOSCloud.initialize() 后面,只需要调用一次即可
AVOSCloud.setDebugLogEnabled(true);

compile('cn.leancloud.android:avoscloud-sdk:v3.+')

好了

在发送短信之前,需要有一个 短信签名。在 控制台 > 消息 > 短信 > 设置 > 短信签名 里创建,审核通过后就可以使用了。
+

没有使用自定义模板的短信,只能使用默认签名,即无法通过 requestSmsCode 接口来指定要使用的签名。
使用这些 API 需要在 控制台 > 消息 > 短信 > 设置 > 短信选项 中开启 启用通用的短信验证码服务(开放 requestSmsCode 和 verifySmsCode 接口) 选项,并且有一个已审核通过的短信签名。

后台操作了一下 好了