关于android分享(sharedsdk的简单使用)
老早就使用了。可是如今才写,惰性太大,如今改
如今做产品的话相信大家基本都做分享吧。一个是项目的需求须要,另一个是能够非常好的宣传自己的产品。其它的优点依据情况而论
事实上每一个平台都有它自己的文档,可是假设做产品赶进度的话。或者说一些不可控的因素的话,而使用到sharedsdk的话。那我简单说一下
首先,来看一下sharedsdk的官网:http://mob.com/#/index
假设要使用的话须要去注冊,博主这里注冊了,再在这说一下,假设是公司的话。须要用公司的帐号加入应用,由于涉及到后台的统计
这个是基本的三个,并且分享的jar包里面已经集成了第三方登陆了,来说一下详细使用,肯定是要先去对应的地址下东西,嘿嘿
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这个有sdk和demo,还有集成文档,我感觉大家能够不用下demo的。直接下载sdk然后看集成文档,基本就能搞定,博主原来用的时候事实上有bug的,有个类里面的引用不正确,可是集成文档版本号比較老,如今好了,文档说的非常具体
这个sdk下载下载是.tar.gz格式的,博主用360压缩死活打不开,每次都是。并且博主还是每次都用好压。由于下载360直接推荐下了好多软件。打不开的话首先就得想怎么打开,事实上去掉.gz就能够了,可是这事实上不应该是结束,应该想一下为什么,事实上这个压缩包在mac里面是能够打开的,主要是博主一直用的windows,其它的没用写过代码,这种话大家应该能够理解了吧。事实上兼容问题
好下载下来看看是什么东西
依据名字的话应该是一个client一个是服务端。服务端博主没有细致研究过,说一下android端。
大家可能会发现。jar包。唉,又默认成压缩包了,事实上应该用java se打开的,然后勾选须要的平台
这里的项目包名能够去清单文件中面获取,必需要相应,然后项目名称能够自定义下。确定后相应的文件,以及文件路径都会生成在那个jar包的根文件夹下
剩下的便是新建对应的文件夹。然后把对应的包放进去,博主用的as,这里着重说一下须要注意的。eclipse貌似问题要少点
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
就是这个assets是在这个路径下的。再有就是假设集成短信功能的话还须要一个lib文件夹和eclipse不一样,jnilibs应该和java放在同一个文件夹下
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
还有就是as编译比較严格。里面有些关于百度贴吧的编译是通只是的。所有注掉。另一个文件须要干掉,不然编译也是会出错的,再有就是没有英文命名的string,不是做国际化的须要加上一行代码。进行强制编译
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
eclipse貌似不会提示错误,可是as必须加上再有就是关于刷新的话,有些命名是反复的,须要注掉
<string name="app_name">laugh</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<!-- <string name="pull_to_refresh">下拉刷新</string> -->
<!-- <string name="release_to_refresh">释放马上刷新</string> -->
<!-- <string name="refreshing">正在刷新...</string> -->
<string name="refresh_succeed">刷新成功</string>
<string name="refresh_fail">刷新失败</string>
<string name="pullup_to_load">上拉载入很多其它</string>
<string name="release_to_load">释放马上载入</string>
这样编译的话能够全然ok了,然后看一下ShareSDK.xml里面是什么东西
<?xml version="1.0" encoding="utf-8"?>
<DevInfor>
<!--
说明: 1、表格中的第一项
<ShareSDK
AppKey="api20" />
是必须的。当中的AppKey是您在ShareSDK上注冊的开发人员帐号的AppKey 2、全部集成到您项目的平台都应该为其在表格中填写相相应的开发人员信息。以新浪微博为例:
<SinaWeibo
Id="1"
SortId="1"
AppKey="568898243"
AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
RedirectUrl="http://www.mob.com"
Enable="true" />
当中的SortId是此平台在分享列表中的位置,由开发人员自行定义,能够是不论什么整型数字,数值越大
越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注冊开发人员信息和应用后得到的信息
Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
Enable字段表示此平台是否有效。布尔值。默觉得true,假设Enable为false,即便平台的jar包
已经加入到应用中,平台实例依旧不可获取。 各个平台注冊应用信息的地址例如以下:
新浪微博 http://open.weibo.com
腾讯微博 http://dev.t.qq.com
QQ空间 http://connect.qq.com/intro/login/
微信好友 http://open.weixin.qq.com
Facebook https://developers.facebook.com
Twitter https://dev.twitter.com
人人网 http://dev.renren.com
开心网 http://open.kaixin001.com
搜狐微博 http://open.t.sohu.com
网易微博 http://open.t.163.com
豆瓣 http://developers.douban.com 有道云笔记 http://note.youdao.com/open/developguide.html#app
印象笔记 https://dev.evernote.com/
Linkedin https://developer.linkedin.com
FourSquare https://developer.foursquare.com/
搜狐随身看 https://open.sohu.com/
Flickr http://www.flickr.com/services/
Pinterest http://developers.pinterest.com/
Tumblr http://www.tumblr.com/developers
Dropbox https://www.dropbox.com/developers
Instagram http://instagram.com/developer#
VKontakte http://vk.com/dev
易信好友 http://open.yixin.im/
明道 http://open.mingdao.com/
Line http://media.line.me/zh-hant/
Pocket http://getpocket.com/developer/apps/new
--> <ShareSDK
AppKey = "androidv1101"/> <!-- 改动成你在sharesdk后台注冊的应用的appkey"--> <!-- ShareByAppClient标识是否使用微博client分享,默认是false -->
<SinaWeibo
Id="1"
SortId="1"
AppKey="568898243"
AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
RedirectUrl="http://www.sharesdk.cn"
ShareByAppClient="false"
Enable="true" /> <TencentWeibo
Id="2"
SortId="2"
AppKey="801307650"
AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
RedirectUri="http://sharesdk.cn"
Enable="true" /> <!-- ShareByAppClient标识是否使用微博client分享。默认是false -->
<QZone
Id="3"
SortId="3"
AppId="100371282"
AppKey="aed9b0303e3ed1e27bae87c33761161d"
ShareByAppClient="false"
Enable="true" /> <!--
Wechat微信和WechatMoments微信朋友圈的appid是一样的。 注意:开发人员不能用我们这两个平台的appid,否则分享不了 微信測试的时候,微信測试须要先签名打包出apk,
sample測试微信,要先签名打包,keystore在sample项目中。password123456 BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
审核的应用也能够运行分享,可是仅限于分享文字和图片,不能分享其它类型,
默认值为false。 此外。微信收藏不支持此字段。
-->
Id="4"
SortId="4"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="false"
Enable="true" /> <WechatMoments
Id="5"
SortId="5"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="false"
Enable="true" /> <WechatFavorite
Id="6"
SortId="6"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
Enable="true" /> <!-- ShareByAppClient标识是否使用微博client分享。默认是false -->
Id="7"
SortId="7"
AppId="100371282"
AppKey="aed9b0303e3ed1e27bae87c33761161d"
ShareByAppClient="true"
Enable="true" /> <Facebook
Id="8"
SortId="8"
ConsumerKey="107704292745179"
ConsumerSecret="38053202e1a5fe26c80c753071f0b573"
RedirectUrl="http://mob.com"
Enable="true" /> <Twitter
Id="9"
SortId="9"
ConsumerKey="LRBM0H75rWrU9gNHvlEAA2aOy"
ConsumerSecret="gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
CallbackUrl="http://mob.com"
Enable="true" /> <Renren
Id="10"
SortId="10"
AppId="226427"
ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"
SecretKey="f29df781abdd4f49beca5a2194676ca4"
Enable="true" /> <KaiXin
Id="11"
SortId="11"
AppKey="358443394194887cee81ff5890870c7c"
AppSecret="da32179d859c016169f66d90b6db2a23"
RedirectUri="http://www.sharesdk.cn"
Enable="true" /> <Email
Id="12"
SortId="12"
Enable="true" /> <ShortMessage
Id="13"
SortId="13"
Enable="true" /> <Douban
Id="16"
SortId="16"
ApiKey="031a96a3aa8b28af094fc3eaffa17a0d"
Secret="2e675e730571b75d"
RedirectUri="http://mob.com"
Enable="true" /> <YouDao
Id="17"
SortId="17"
HostType="product"
ConsumerKey="dcde25dca105bcc36884ed4534dab940"
ConsumerSecret="d98217b4020e7f1874263795f44838fe"
RedirectUri="http://www.sharesdk.cn/"
Enable="true" /> <SohuSuishenkan
Id="18"
SortId="18"
AppKey="e16680a815134504b746c86e08a19db0"
AppSecret="b8eec53707c3976efc91614dd16ef81c"
RedirectUri="http://sharesdk.cn"
Enable="true" /> <!--
在中国大陆,印象笔记有两个server。一个是沙箱(sandbox),一个是生产server(china)。 一般你注冊应用,它会先让你使用sandbox,当你完毕測试以后,能够到
http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后。改动HostType
为china就好了。至于假设您申请的是国际版的印象笔记(Evernote)。则其生产server类型为
“product”。 假设目标设备上已经安装了印象笔记client,ShareSDK同意应用调用本地API来完毕分享。但
是须要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。
-->
<Evernote
Id="19"
SortId="19"
HostType="sandbox"
ConsumerKey="sharesdk-7807"
ConsumerSecret="d05bf86993836004"
ShareByAppClient="false"
Enable="true" /> <LinkedIn
Id="20"
SortId="20"
ApiKey="ejo5ibkye3vo"
SecretKey="cC7B2jpxITqPLZ5M"
RedirectUrl="http://sharesdk.cn"
Enable="true" /> <GooglePlus
Id="21"
SortId="21"
Enable="true" /> <FourSquare
Id="22"
SortId="22"
ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"
ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"
RedirectUrl="http://www.sharesdk.cn"
Enable="true" /> <Pinterest
Id="23"
SortId="23"
ClientId="1432928"
Enable="true" /> <Flickr
Id="24"
SortId="24"
ApiKey="33d833ee6b6fca49943363282dd313dd"
ApiSecret="3a2c5b42a8fbb8bb"
RedirectUri="http://www.sharesdk.cn"
Enable="true" /> <Tumblr
Id="25"
SortId="25"
OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"
SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"
CallbackUrl="http://sharesdk.cn"
Enable="true" /> <Dropbox
Id="26"
SortId="26"
AppKey="i5vw2mex1zcgjcj"
AppSecret="3i9xifsgb4omr0s"
RedirectUri="https://www.sharesdk.cn"
Enable="true" /> <VKontakte
Id="27"
SortId="27"
ApplicationId="3921561"
Enable="true" /> <Instagram
Id="28"
SortId="28"
ClientId="ff68e3216b4f4f989121aa1c2962d058"
ClientSecret="1b2e82f110264869b3505c3fe34e31a1"
RedirectUri="http://sharesdk.cn"
Enable="true" /> <!--
Yixin易信和YixinMoments易信朋友圈的appid是一样的; 注意:开发人员不能用我们这两个平台的appid,否则分享不了 易信測试的时候须要先签名打包出apk,
sample測试易信,要先签名打包,keystore在sample项目中,password123456 BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
审核的应用也能够运行分享,可是仅限于分享文字或图片,不能分享其它类型。
默认值为false。 -->
<Yixin
Id="29"
SortId="29"
AppId="yx0d9a9f9088ea44d78680f3274da1765f"
BypassApproval="true"
Enable="true" /> <YixinMoments
Id="30"
SortId="30"
AppId="yx0d9a9f9088ea44d78680f3274da1765f"
BypassApproval="true"
Enable="true" /> <Mingdao
Id="31"
SortId="31"
AppKey="EEEE9578D1D431D3215D8C21BF5357E3"
AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"
RedirectUri="http://sharesdk.cn"
Enable="true" /> <Line
Id="32"
SortId="32"
Enable="true" /> <KakaoTalk
Id="33"
SortId="33"
AppKey="48d3f524e4a636b08d81b3ceb50f1003"
Enable="true" /> <KakaoStory
Id="34"
SortId="34"
AppKey="48d3f524e4a636b08d81b3ceb50f1003"
Enable="true" /> <WhatsApp
Id="35"
SortId="35"
Enable="true" /> <Bluetooth
Id="36"
SortId="36"
Enable="true" /> <Pocket
Id="37"
SortId="37"
ConsumerKey="32741-389c565043c49947ba7edf05"
Enable="true" /> <Instapaper
Id="38"
SortId="38"
ConsumerKey="4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA"
ConsumerSecret="GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe"
Enable="true" /> <FacebookMessenger
Id="39"
SortId="39"
ConsumerKey="107704292745179"
ConsumerSecret="38053202e1a5fe26c80c753071f0b573"
RedirectUrl="http://mob.com"
Enable="true" /> </DevInfor>
里面都是自带的,我大致说一下是什么,对应的key是须要公司依据对应的签名去审核获取,分享的话QQ空间,微信朋友圈用他的測试即可,假设是分享给QQ群,个人,微信个人是会打上对应的标的,用过就知道了,假设涉及到这些keyi在公布前一定要用自己的进行測试。公布要公布自己的应用。这里略微说一下第三方授权登录。就是假设申请的对应的key和你的应用签名不一样的话肯定是上不了的,打包的时候一定要打release包,不要打debug包。debug是没有签名的,最好用实体机进行測试,再来就是该基本的了。怎么调用分享代码
protected void showShare() {
ShareSDK.initSDK(getActivity());
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize(); // 分享时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以下存在此张图片
// 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"); // 启动分享GUI
oks.show(getActivity());
}
这个是在fragment里面调用的,activity一类的(actionbaractivity,FragmentActivity)换成this就能够了。事实上以上的一些set方法都是经常使用的,另一些能够点出来
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
好多东西等着你去发掘,嘿嘿,就简介到这里了,基本全部分享功能都能使用了,第三方授权稍后再说
----------------------------------------------------------切割线---------------------------------------------------------------------------------------------------------------------------
这里也有一个问题。非常现实。但是也非常困扰人。就是关于集成的问题,有人说怎么什么都想着集成啊,但是能够考虑一下,让你一个人两个月开发一款app,那么这些工具类的东西,难道每次都去查对应的官方api去自己写?换句话说,我相信有些厉害的程序猿肯定会自己封装了一个底层框架吧,或者把框架里面的东西都单出来,然后存到github上,用什么就下载来copy改改,不可能每次都去查api再去一点一点写吧,尤其不是核心的代码,仅仅是工具而已,我是这样觉得,个人观点
关于android分享(sharedsdk的简单使用)的更多相关文章
- Android - 分享内容 - 接收其他APP的内容
就象程序可以发送数据给其他程序,所以也可以接收其他程序的数据.想一下用户如何和程序交互,以及想从其他程序接收什么样类型的数据.例如,一个社交程序可能对接收其他程序的文字(比如有趣的网址)感兴趣.Goo ...
- Android - 分享内容 - 给其他APP发送内容
创建一个intent时,必须要指定intent将要触发的操作.Android定义了很多操作,包括ACTION_SEND,就象可以猜到的一样,表示intent是把数据从一个activity发送给另一个, ...
- Xamarin.Android之封装个简单的网络请求类
一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...
- [电子书] 《Android编程入门很简单》
<Android编程入门很简单>是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书.本书避免出现云山雾罩.晦涩难懂的讲解,代之以轻松活泼.由浅入 ...
- [原创]Android中LocationManager的简单使用,获取当前位置
Android中LocationManager的提供了一系列方法来地理位置相关的问题,包括查询上一个已知位置:注册/注销来自某个 LocationProvider的周期性的位置更新:以及注册/注销接近 ...
- android:分享 一个很强大的LOG开关---Log.isLoggable
标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...
- Android下实现一个简单的计算器源码
下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...
- 练习:javascript分享划过简单效果
利用目标点判断速度speed正负值.利用目标点函数封装传参, <!doctype html> <html lang="en"> <head> & ...
- android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】
android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...
- Android 6.0 超级简单的权限申请2 (Permission)
代码地址如下:http://www.demodashi.com/demo/13506.html 写在前面 上次写了一个权限申请的例子Android 6.0 超级简单的权限申请 (Permission) ...
随机推荐
- 【转】4w+1h 教你如何做用户画像
记得14年开始做用户画像的时候,对于用户画像完全没有概念,以为是要画一幅幅图画,经过两年多的学习和理解,渐渐的总结出了一些方法和技巧,在这里就通过4个W英文字母开头和1个H英文字母开头的单词和大家分享 ...
- LeetCode(111) Minimum Depth of Binary Tree
题目 Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the s ...
- Lex与Yacc学习(十)之Yacc库
Yacc库 每个实现都需要有用的例程库,在UNIX系统中,可以通过cc命令行尾端给出-ly标志(或通过其他系统下的等价物)来包含库. 库的内容在不同的实现之间是不同的,但总是包括main()和yyer ...
- JQuery中xxx is not a function或者can not find $
在项目中,遇到以上两个错误,反复折腾了好久,js代码写得没有问题,jquery的文件也引入了,就是反复的报告错误,xxx is not a function.如图: 就是这样的错误,shake is ...
- Tomcat下部署PHP
php线程安全版和非线程安全版本区别 1.windows + IIS + FastCGI :使用非线程安全版本. 解释: 以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单 ...
- 2. vsCode 安装GoCode
1)安装gocode 打开命令提示符(以管理员身份打开),输入: go get -u -v github.com/nsf/gocode 开始下载: 下载完毕: 下载完成,查看D:\GoWorks目录, ...
- js中的事件委托或事件代理
一,概述 JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 举一个网上大牛们讲事件委托都会举的例子:就是取快递来解释,有三个同事预 ...
- spring4 整合hibernate4时遇到的问题以及解决办法
配置hibernate时出现了如下错误: Java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver 错误原因:hiber ...
- Mysql 使用命令及 sql 语句示例
Mysql 是数据库开发使用的主要平台之一.sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句. 在此处有 sql 语句使用示例:在这里 此处插入 ...
- loj2002 「SDOI2017」序列计数
水题 #include <iostream> #include <cstring> #include <cstdio> using namespace std; t ...