android]ShareSDK——内容分享和短信验证
来源:互联网 发布:linux 文件内容排序 编辑:程序博客网 时间:2024/05/22 10:59
前言
新版本ShareSDK的分享和短信验证,按官网的文档,都需要添加一个<Activity></Activity>标签,而分享和短息验证的这个标签内容都一样。会冲突。
解决办法:分享用旧版本,短信验证用新版本。后面会有解决办法。
分享
导入工程见初识ShareSDK——嵌入和登陆
<span style="font-size:24px;">OnekeyShare oks = new OnekeyShare();//所有SSO都是针对新浪微博doks.disableSSOWhenAuthorize();oks.setSilent(true);</span>如果没有指定分享平台,则默认所有平台都会跳出。
oks.setPlatform(platformName);
一些需要注意的,注释已经很详细了。
//分享时Notification的图标和文字2.5.9以后的版本不调用此方法//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name)); // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用 oks.setTitle(getString(R.string.share));// titleUrl是标题的网络链接,仅在人人网和QQ空间使用 oks.setTitleUrl("http://sharesdk.cn"); // text是分享文本,所有平台都需要这个字段//有字数限制 oks.setText("我是分享文本");// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数(如果本地没有,则后面的语句不会执行)//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片<span style="white-space:pre"></span>//oks.setImageUrl("=");//网络路径 QQ空间有时候分享不成功(权限问题)// url仅在微信(包括好友和朋友圈)中使用 oks.setUrl("http://sharesdk.cn"); // comment是我对这条分享的评论,仅在人人网和QQ空间使用 oks.setComment("我是测试评论文本"); // site是分享此内容的网站名称,仅在QQ空间使用 oks.setSite(getString(R.string.app_name)); // siteUrl是分享此内容的网站地址,仅在QQ空间使用 oks.setSiteUrl("http://sharesdk.cn"); //设置经纬度(可根据定位获取) //oks.setLatitude(latitude); //oks.setLongitude(longitude); //启动分享GUI(图形用户界面) oks.show(this);</span>
短信验证
短信验证和登陆分享申请KEY 和 SECRET的地方不一样。。我犯了这个错误,结果验证的时候提示Appkey无效或被禁用。。
官网下载SDK
将SMS文件夹下的SMSSDK文件拷贝到工程里,作为library导入。
添加权限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
添加代码调用:
SMSSDK.initSDK(this, APP_KEY, APP_SECRET);RegisterPage page = new RegisterPage();page.setRegisterCallback(new EventHandler(){@Overridepublic void afterEvent(int event, int result, Object data) {if(result == SMSSDK.RESULT_COMPLETE){HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;String country = (String) phoneMap.get("country");String phone = (String) phoneMap.get("phone"); // 提交用户信息,这个方法是获取了手机后,你想采取的操作。//registerUser(country, phone);System.out.println(country+phone);}}});page.show(this);
自定义短信验证界面
都是官网的文档
将private EventHandler eh;声明为全局,为了在Activity的onDestroy()里,对EventHandler注销验证SMSSDK.unregisterEventHandler(eh);
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) { //提交验证码成功 System.out.println("成功!"); }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){ //获取验证码成功 System.out.println("获取验证码成功"); }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){ //返回支持发送验证码的国家列表 } }else{ ((Throwable)data).printStackTrace(); } } }; SMSSDK.registerEventHandler(eh); //注册短信回调
为按钮添加监听事件:
//获取短信验证btn_num.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {if (!TextUtils.isEmpty(et_num.getText().toString())) {SMSSDK.getVerificationCode("86", et_num.getText().toString());}}});//把短信里的验证码提交到服务器btn_code.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {SMSSDK.submitVerificationCode("86",et_num.getText().toString(), et_code.getText().toString());}});
文档地址:无gui接口调用
ShareSDK新版本短信验证和分享冲突解决
因为新版本shareSDK中分享与验证中,mainfest中name中都是"com.mob.tools.MobUIShell"放在一个工程里会冲突。
分享:
将mainfest文件节点
<activity android:name="com.mob.tools.MobUIShell" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize" >
改为:
<activity android:name="cn.sharesdk.framework.ShareSDKUIShell" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize" >
将share的libs中
对应的2.6.0的替换为
短信验证的不用变。
0 1
- [android]ShareSDK——内容分享和短信验证
- android]ShareSDK——内容分享和短信验证
- Android-Studio 用ShareSDK集成社会化分享,短信验证码,视频录制功能
- sharesdk 短信验证码
- 分享——shareSDK
- Android最快捷集成Sharesdk短信验证码功能(干货)
- shareSdk集成短信验证码
- Android—使用ShareSDK实现新浪微博分享
- 使用ShareSDK实现第三方分享和第三方登陆 以及短信验证码的功能 配置的中的一些坑
- Android ShareSDK 分享经验
- Android ShareSDK 分享
- Android实现ShareSDK分享
- Android实现ShareSDK分享
- android 分享sharesdk集成
- 关于短信验证和第三方分享
- Android短信验证与内容监听识别
- iOS - ShareSDK 短信验证码开发记录
- 利用ShareSDK集成发送短信验证码
- vs2015开发webserver 返回json格式 实现图书编目数据接口
- 更新和迁移phabricator
- Spring Boot实战之配置使用Logback进行日志记录
- 第三方支付网银支付流程
- myeclipse中mybatis generator插件的手动安装即使用
- android]ShareSDK——内容分享和短信验证
- 八大排序算法 Java、Python、C++实现 -- 冒泡排序
- iOS 为什么要用weak修饰代理(delegate)
- iOS常用的第三方
- Markdown编辑器使用
- H5页面上传图片控件
- 抠图基本知识
- Mysql 优化学习总结二--单表优化
- Docker 1.12新功能探索(1):centos7上安装docker1.12