android 云之讯如何使用隐号通话怎么使用

初次使用云之讯平台常见问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
初次使用云之讯平台常见问题
|0|0|文档简介
云之讯融合通讯开放平台是深圳云之讯网络技...|
总评分0.0|
&&初次使用云之讯平台常见问题
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢
<b class="ic ic-">第三方sdk(2)
好久没更新过博客了。这段时间总算是忙完了,抽点时间出来更新下博客。这次跟大家带来的是一个很简单的短信验证码。相信这个验证码的功能基本上99的项目都需要用到,我这里是用的云之迅平台,为什么要用这个平台,因为原理很简单,用起来也还不错。
1、这里说下云之迅的实现原理,首先得去云之迅平台去申请个开发者账号,然后集成云之迅代码。
2、代码原理其实也很简单,就是自己在本地生成一个多少位的验证码,然后把验证码等参数通过云之迅的接口发给云之迅,再通过云之迅给那台手机发送短信验证码,然后得到验证码之后输入验证码,跟一开始生成的验证码进行对比,如果匹配的话就算是验证通过,当然也可以本地md5加密,当前demo是没有进行验证码加密的。
首先看下效果动图(由于隐私问题把电话号码挡住了一部分):
好了,下面我们进入正题!!!!
1、下面我们先看目录结构(红线部分就是云之迅的代码集成的部分,我们真正写的只有一个MainActivity)
2、好了,咱们来看看MainActivity这个里面的代码:
package com.wyw.
import org.json.JSONE
import org.json.JSONO
import android.app.A
import android.os.B
import android.os.CountDownT
import android.os.H
import android.os.M
import android.text.TextU
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.EditT
import android.widget.T
public class MainActivity extends Activity implements OnClickListener {
private Button btn_
private Button btn_send_
private EditText edit_
private EditText edit_
* 短信平台 Account sid
public final static String SMS_SID = "";
* 短信平台 Auth Token
public final static String SMS_TOKEN = "";
* 短信平台 SMS_APPID
public final static String SMS_APPID = "";
* 短信模板ID SMS_TEMPLATEID
public final static String SMS_TEMPLATEID = "";
TimeCount timeC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_enter = (Button) findViewById(R.id.btn_enter);
btn_send_code = (Button) findViewById(R.id.btn_send_code);
edit_code = (EditText) findViewById(R.id.edit_code);
edit_phone = (EditText) findViewById(R.id.edit_phone);
btn_enter.setOnClickListener(this);
btn_send_code.setOnClickListener(this);
* 内部类计时器
private class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
public void onFinish() {
btn_send_code.setText("重新发送验证码");
btn_send_code.setEnabled(true);
public void onTick(long millisUntilFinished) {
btn_send_code.setText((millisUntilFinished / 1000) + "后可重新发送验证码");
btn_send_code.setEnabled(false);
protected void onDestroy() {
super.onDestroy();
if (timeCount!=null) {
timeCount.cancel();
public void onClick(View v) {
if (btn_enter == v) {
String code_lin = edit_code.getText().toString();
if (TextUtils.isEmpty(code_lin)) {
Toast.makeText(MainActivity.this, "验证码不能为空", Toast.LENGTH_SHORT).show();
if (code != null && code.equals(code_lin)) {
Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "验证失败,请填写正确的验证码", Toast.LENGTH_SHORT).show();
} else if (btn_send_code == v) {
if (TextUtils.isEmpty(edit_phone.getText().toString())) {
Toast.makeText(MainActivity.this, "手机号码不能为空", Toast.LENGTH_SHORT).show();
if (!isMobileNO(edit_phone.getText().toString())) {
Toast.makeText(MainActivity.this, "手机号码不合法", Toast.LENGTH_SHORT).show();
sendSMS();
* 验证手机格式
public static boolean isMobileNO(String mobiles) {
String telRegex = "[1][134578]\\d{9}";
if (TextUtils.isEmpty(mobiles)) {
return false;
return mobiles.matches(telRegex);
* 发送短信验证码
private void sendSMS() {
code = Math.round(Math.random() * 10000) + "";
if (code.length() & 4) {
code = code.substring(0, 4);
} else if (code.length() & 4) {
sendSMS();
new Thread(new Runnable() {
public void run() {
JsonReqClient client = new JsonReqClient();
String result = client.sendVerificationCode(SMS_APPID, SMS_SID,SMS_TOKEN, code, edit_phone.getText().toString(), SMS_TEMPLATEID);
if (result != null && result.length() & 0) {
JSONObject object = new JSONObject(result);
if (object.has("resp")) {
JSONObject item = object.getJSONObject("resp");
if (item.has("respCode") && item.getString("respCode").equals("000000")) {
mHandler.sendEmptyMessage(0);
mHandler.sendEmptyMessage(1);
mHandler.sendEmptyMessage(1);
} catch (JSONException e) {
e.printStackTrace();
mHandler.sendEmptyMessage(1);
mHandler.sendEmptyMessage(1);
}).start();
private Handler mHandler = new Handler() {
public void dispatchMessage(Message msg) {
switch (msg.what) {
Toast.makeText(MainActivity.this, "短信验证码发送成功", Toast.LENGTH_SHORT).show();
timeCount = new TimeCount(60000, 1000);
timeCount.start();
Toast.makeText(MainActivity.this, "短信验证码发送失败", Toast.LENGTH_SHORT).show();
在代码里面我们可以看到这4个常量参数,然而这4个参数是怎么获取的呢?请往下看我会一一解释!
* 短信平台 Account sid
public final static String SMS_SID = "";
* 短信平台 Auth Token
public final static String SMS_TOKEN = "";
* 短信平台 SMS_APPID
public final static String SMS_APPID = "";
* 短信模板ID SMS_TEMPLATEID
public final static String SMS_TEMPLATEID = "";
首先是(短信平台 Account sid,短信平台 Auth Token)这2个参数,请看图中红色框框标出的部分,就可以知道咱们的这2个参数怎么获得,当然前提是你必须得有个开发者账号!!:
接着就是(短信平台 SMS_APPID)这个参数的获取了,这个参数呢你得先去“应用管理-应用列表”里面去把你的应用给添加起来,然后会出现个你的应用列表,然后点击该应用就能看到该下图:
最后这个参数呢(短信模板ID SMS_TEMPLATEID)也是在“应用管理-短信管理”里面有个创建短信模板的,请先创建短信的模板,我这里会跟你提供一个比较大众的模板,当然了如果有不知道模板的规则是怎样可以点击下图红框标记的查看规则说明。
当模板创建成功之后就得到咱们需要的(短信模板ID SMS_TEMPLATEID)这个参数啦!请看下图
这样我们就拿到所有的参数了,然后调用上面代码的这段代码(原理也说了本地生成一个多少位的验证码,然后通过接口传给云之迅平台,由云之迅平台发送短信,收到短信后与本地做验证,当前也可以进行加密之后的验证):
* 发送短信验证码
private void sendSMS() {
code = Math.round(Math.random() * 10000) + "";
if (code.length() & 4) {
code = code.substring(0, 4);
} else if (code.length() & 4) {
sendSMS();
new Thread(new Runnable() {
public void run() {
JsonReqClient client = new JsonReqClient();
String result = client.sendVerificationCode(SMS_APPID, SMS_SID,SMS_TOKEN, code, edit_phone.getText().toString(), SMS_TEMPLATEID);
if (result != null && result.length() & 0) {
JSONObject object = new JSONObject(result);
if (object.has("resp")) {
JSONObject item = object.getJSONObject("resp");
if (item.has("respCode") && item.getString("respCode").equals("000000")) {
mHandler.sendEmptyMessage(0);
mHandler.sendEmptyMessage(1);
mHandler.sendEmptyMessage(1);
} catch (JSONException e) {
e.printStackTrace();
mHandler.sendEmptyMessage(1);
mHandler.sendEmptyMessage(1);
}).start();
本篇博客就到这里,如果有有疑问的欢迎留言讨论。同时希望大家多多关注我的博客,多多支持我。
尊重原创转载请注明:() !
下面是地址传送门:址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:33174次
排名:千里之外
原创:29篇
转载:21篇
评论:68条
(2)(1)(4)(1)(2)(1)(1)(3)(1)(2)(1)(2)(2)(3)(1)(1)(4)(2)(3)(13)云之讯贾俊杰:如何借助云技术实现移动医疗
新浪科技 李根
10月26日下午,深圳消息,第四届安卓全球开发者大会暨2015全球移动互联网高层论坛在深圳召开。IDG全球常务副总裁、IDG资本创始合伙人熊晓鸽,新浪网副总裁邓庆旭等重量级嘉宾出席。
AndroidWorld全球开发者大会由IDG集团旗下IDG World Expo发起并承办。大会基于Android平台,促进国内外信息技术厂商、专业人士和企业用户进行商业模式探讨、技术交流、移动应用推广的交流盛会,为更多业内人士提供探索和寻求共同发展、合作共赢的契机。推动各种移动应用软件在国民经济各个领域内的广泛使用,推进政府和企业的信息化建设。
在安卓开发者大会的“移动健康医疗专场”的分会场,国内多家移动互联网云服务创业公司负责人应邀发表演讲,探讨移动互联网云服务的发展方向,并从各自的角度发表了相关看法。
深圳云之讯联合创始人贾俊杰发表了《如何借助云技术实现更有效的移动医疗》的演讲,认为利用云技术可以让医患沟通更加方便、成本更低、效率更高,并表示云之讯可以在移动医疗方面,完成连接、智能和体验等3个方面的功能提升。
以下为贾俊杰的演讲实录:
大家好!我是来自深圳云之讯的贾俊杰。借今天很好的机会希望和大家探讨一下移动医疗在通讯方面的一些需求和痛点,以及我们云之讯作为通讯云的这样一个服务平台,怎么能够助力到移动医疗通讯的方面。
从传统的医疗向移动医疗的快速发展的过程,我想这其实是互联网+带给我们这样一个改变生活方式的又一个可能,我们知道前段时间我们可能沟通的方式比较单一,那么我们之前只有短信,只有电话,于是微信来了,把我们的沟通方式改变了。然后我们出行方式也非常单一,遇到了各种各样的问题,我们打车难,又要挤公交,于是滴滴来了,把我们的出行方式改变了。我想,我们在之前大家看病的时候肯定也有这样的体验,在传统医疗的过程中会有各种各样的问题,我们可能要花费太多的时间的成本和金钱的成本去看病,然后又面临各种等待、排队,然后对各种医疗的信息不了解、不清楚,种种的问题,随着互联网+的到来正在逐渐改变和优化。
为什么我们原来面临各种各样的医疗上的问题?我想这跟我们原来传统医疗的一些痛点是有关系的。最根本的,我们的传统医疗的一些资源是不平衡的。我们知道,其实我们的医疗的资源大多数是集中在东部的一些省份,优质的资源又是集中在北上广深这种非常发达的城市,这就导致了我们在看病的过程中,必须要花费大量的时间和金钱去看病,那大家的体验肯定是非常差的。另外还有在医患的关系上非常不平衡,我们平均的比例在1:80,在特定的专业里面,这个比例会更高。这就导致了医生本身面临那么多患者,它的服务是不足的,然后它的心理压力是非常大的。另外患者在这种情况下是很难得到非常高质量的服务的。另外还有就是医生在从业通道上的不平衡,导致了在体制内和体制外的,不管是从保障,还是职业的晋升通道上有非常大的差异的。这种传统的,由于一些政策上的因素,导致了医生在一些服务的质量,效率以及积极性上都会有些问题,导致了整体的医生资源,这种信息资源的效率是非常低的。
面对这样种种的传统医疗的痛点,我想随着我们互联网+的到来,会逐渐的优化和解决。现在大家会发现,我们在整个移动医疗的发展过程中,已经遍布了从诊前、诊中、诊后各个环节的一些APP的应用或企业。总结概括的来讲,移动医疗能够带给我们最关键的优势在哪里?我想主要是以下三个方面的体验:1、连接的功能;2、智能的功能;3、体验的功能。什么是连接的功能呢?连接的功能是移动医疗能够拉近医疗各个环节之间的联系,包括医生、患者、医院、药企各个环节。然后通过互联互通这样一个模式,能够把这种信息不对称的问题解决,去优化整体的医疗的效率来提升用户的体验。另外智能功能是什么意思呢?主要体现为通过大数据的一些收集和分析来提供更加精准的诊疗的建议和措施。因为我们现在随着软件和硬件的快速发展,所以我们更容易的去获得用户的一些比如运动信息,身体的体征信息,以及我们各种诊疗信息。通过这些信息,经过智能的分析和大数据的挖掘技术,我们可以在此基础上提供更加精准的医疗建议。另外一个非常重要的功能是体验功能,体验功能其实主要对患者来讲是非常明显的,体验是为了让患者在诊疗的过程中,在就医的过程中更加便捷、更加高效、更加舒心,大家体会应该是比较深的。
综合来讲,这些移动医疗的特点和优势,总结来讲,需要全方位的通信能力,尤其是刚才讲的体验功能,那么对这种全方位的通讯功能是有非常强大的依赖的。那么移动医疗对通讯都有哪些依赖呢?初步列了几项,比如说第一项是大家也深有体会的,我们在就医的过程中,经常会遇到各种各样的纠纷,这些纠纷事后可能会导致比较严重的问题,这需要什么呢?这需要我们在医患沟通的过程中,需要有据可查。你在通话过程中的录音数据、一些记录就很关键。所以通话录音是非常关键的在移动医疗的场景下。另外对即时消息来讲也是医患交互很重要的功能,医生、患者经常要交互图片、文件等等各种信息,这样方便遗患之间高效的沟通。另外还有一点是对于隐号通话的需求,我们可能知道医生或者患者需要保护自己的隐私,他不希望把自己的信息暴露给对方,但是在这种场景下还需要保持沟通,这种隐号通话的需求就变成必须品。对于视频通话的需求,这是非常高效直接的通讯方式,能够更快速、更直接的来帮助医患之间进行沟通。除了这些还有各种各样非常多的通讯的需求。
刚才讲了这么多需求,说起来很容易,但实际上如果我们自己做的话,其实会面临非常多的困难,通讯本身是一个相对有一些技术门槛的这样一件事,比如凭我们的经验,你必须通过这种端、网络到云,各个层面的这样一个优化才能解决这些问题。比如说从终端来讲,终端来讲我们在通讯过程中,尤其是对语音和视频的通话,对耗电量以及移动端的流量消耗是非常严重的,这是非常影响用户体验的。另外还有就是网络层,网络层在通讯,尤其是语音、视频的通话来讲需要考虑各种问题,包括海量用户的接入问题。语音视频有特殊需求,它需要做特殊的考虑。另外还涉及到网监互通的问题,还有非常值得关注的,那就是对于移动端来讲,用户最后一公里的问题,这是非常关键的,也是非常致命。用户最后一公里网络接入类型、质量,各种因素会严重影响通话的结果。云端也是一样,云端要构建各种丰富的通讯功能,通讯作为基础的服务,我们必须要考虑它的可靠性,它的容灾等,所有、所有这些问题。
我们是需要从这几个方面专门优化、解决的。比方说从端的话去解决它的流量、耗电量的问题,我们需要考虑用非常高效、优质的编码和解码的算法。另外还有就是我们要考虑针对网络情况,在网络编码速率上做一个调度和调控,以及我们在传输的协议上面要考虑做更多的压缩,以节省用户的流量消耗。另外在网络上面,我们考虑到多网络、海量分布用户的接入,我们需要考虑分布式部署,考虑不同地区的用户做就近的接入,以及再考虑这种防火墙穿越的问题,还需要考虑P2P智能的切换,以及做网络中转的考虑。在云端,我们更多要考虑这种跨IDC的容灾,以及我们如果需要用到电信资源的话,还需要考虑电信资源智能的调度,所有这些,还是很复杂的。
如果我们做的话,也是可行的。我也见到其他很多用我们现在已经非常成熟的开源技术,在这些技术上做一些优化或者改造,这是可行的。也可能用一两个月、两三个月可以实现,但是实际经验来讲,在这种实现方式上,其实我们从长期来讲,在可靠性,在性能、稳定性上,其实总会有这样那样的问题。其实实现容易,但是做好非常难。另外在整个做的过程中,其实投入的人力成本、时间成本这是非常巨大的,这在对于一些初创的企业来讲是影响非常大的事。比如我们刚才讲的即时通讯还相对容易一些,可能两三个月可以实现。但是对于语音和视频的通讯,我想可能至少要半年时间能真正做到商用的水平。另外你考虑到这些,还要投入更大的硬件投入,在成本上也是有非常大的影响。尤其对初创的移动医疗的应用或者企业来讲,云计算的到来,我们考虑在技术实现上有更多考虑。你更多想用阿里云、Ucloud。存储的时候,你更多的想要用轻云等云存储的服务商。同样的,对刚才讲的移动医疗所需要的各种各样的通讯能力,其实也有另一种实现方式,那么就是通过服务云、通讯云服务的方式来实现。通过这种方式实现,其实你就不需要考虑去为通讯做太多的硬件投入,你也不需要考虑怎么能够保证通讯的可靠、稳定,只需要花一两天的时间,做一个简单的SDK的集成,或者简单的API的调用,那就可以非常轻松的把所有的通讯能力集成到APP中去,这是非常便捷的。我想这也是云计算在通讯方面带来的促进。
我们通过通讯云的方式,怎么搭建的,怎么能够帮助我们的移动医疗实现这种多、快、好、省的效果呢?我们做了很多层次的努力和积累,包括从底层的资源层,因为我们可能在移动医疗很多场景是需要做电话沟通或者说短信的沟通,上面都是需要的。我们在资源层上做了非常多的积累,那我们会汇总非常丰富的,包括语音、短信、流量这些在内的非常多的电信资源。我们可以涵盖全国20多个省份的资源,在这个基础上,我们可以构建非常丰富的通讯能力,比如说我们通过语音可以构造出非常丰富的语音群聊的模式,以及视频同化,以及通过短信实现验证码的功能,以及语音通知、语音验证码的功能,通过这些资源我可以实现隐私保护、通话,以及呼叫中心,像即时通讯等非常丰富的通讯功能。在此基础上,我们通过自己的调度机制,保证能够为很多的移动医疗的企业服务,而做到业务隔离以及分层服务。在此之上,我们面向不同的企业、行业,做了一个非常便利的封装,我们会封装成非常易用的SDK和API的方式,通过这个简单的接口的调用以及简单的封装,就把下面所有能力集成到你的APP中去。
我们希望通过这种模式能够把刚才所讲的在实现通讯过程中遇到这样那样的痛点解决掉。我希望通过这种方式,移动医疗的企业或者APP,可以大大的降低它的人力以及时间投入的成本,以及硬件投入的成本。而你把省下来的人力时间聚焦到其他更重要的事情上去,包括你的资源整合,包括你产品的运营,以及用户体验的提升。在此基础上,我们希望通过通讯云的方式能够提供医患双方非常高效、高质量的通话体验,或者说这种体验上来。真正实现通过通讯云服务助力移动医疗的多、快、好、省。这种模式现在已经有非常多的企业在应用或者说接受,包括我们之前合作的像微中医、杏仁医生等很多企业,都得到很好的效果。我们希望云之讯作为通讯云的服务平台,能够助力更多医疗企业的快速发展,我们一起共建移动医疗的美好明天。
谢谢大家!
看过本文的人还看过
最新图文推荐
新浪(NASDAQ:SINA),是一家服务于中国及全球华人社群的领先在线媒体及增值资讯服务提供商。 拥有多家地区性网站,以服务大中华地区与海外华人为己任,通过旗下五大业务主线为用户提供网络服务。
大家感兴趣的内容
网友热评的文章【图文】云之讯融合通讯开放平台产品手册_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
云之讯融合通讯开放平台产品手册
|0|0|文档简介
云之讯融合通讯开放平台是深圳云之讯网络技...|
总评分0.0|
&&云之讯融合通讯开放平台介绍,功能介绍,产品设计介绍。产品经理和销售人员的宝典。
大小:2.71MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 android 使用隐藏api 的文章

 

随机推荐