关于android分享(sharedsdk的简单使用)

老早就使用了,但是现在才写,惰性太大,现在改

现在做产品的话相信大家基本都做分享吧,一个是项目的需求需要,还有一个是可以很好的宣传自己的产品,其他的好处根据情况而论

其实每个平台都有它自己的文档,但是如果做产品赶进度的话,或者说一些不可控的因素的话,而使用到sharedsdk的话,那我简单说一下

首先,来看一下sharedsdk的官网:http://mob.com/#/index

如果要使用的话需要去注册,博主这里注册了,再在这说一下,如果是公司的话,需要用公司的帐号添加应用,因为涉及到后台的统计

这个是主要的三个,而且分享的jar包里面已经集成了第三方登陆了,来说一下具体使用,肯定是要先去相应的地址下东西,嘿嘿

这个有sdk和demo,还有集成文档,我感觉大家可以不用下demo的,直接下载sdk然后看集成文档,基本就能搞定,博主原来用的时候其实有bug的,有个类里面的引用不对,但是集成文档版本比较老,现在好了,文档说的很详细

这个sdk下载下载是.tar.gz格式的,博主用360压缩死活打不开,每次都是,而且博主还是每次都用好压,因为下载360直接推荐下了好多软件,打不开的话首先就得想怎么打开,其实去掉.gz就可以了,但是这其实不应该是结束,应该想一下为什么,其实这个压缩包在mac里面是可以打开的,主要是博主一直用的windows,其他的没用写过代码,这样的话大家应该可以理解了吧,其实兼容问题

好下载下来看看是什么东西

根据名字的话应该是一个客户端一个是服务端,服务端博主没有仔细研究过,说一下android端,

大家可能会发现,jar包,唉,又默认成压缩包了,其实应该用java se打开的,然后勾选需要的平台

这里的项目包名可以去清单文件里面获取,必须要对应,然后项目名称可以自己定义下,确定后相应的文件,以及文件路径都会生成在那个jar包的根目录下

剩下的便是新建相应的目录,然后把相应的包放进去,博主用的as,这里着重说一下需要注意的,eclipse貌似问题要少点

就是这个assets是在这个路径下的,再有就是如果集成短信功能的话还需要一个lib目录和eclipse不一样,jnilibs应该和java放在同一个目录下

还有就是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标识是否使用微博客户端分享,默认是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标识是否使用微博客户端分享,默认是false -->
    <QZone
        Id="3"
        SortId="3"
        AppId="100371282"
        AppKey="aed9b0303e3ed1e27bae87c33761161d"
        ShareByAppClient="false"
        Enable="true" />

    <!--
    	Wechat微信和WechatMoments微信朋友圈的appid是一样的;

                       注意:开发者不能用我们这两个平台的appid,否则分享不了

       	  微信测试的时候,微信测试需要先签名打包出apk,
		sample测试微信,要先签名打包,keystore在sample项目中,密码123456

		BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
		审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,
		默认值为false。此外,微信收藏不支持此字段。
	-->
    <Wechat
        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标识是否使用微博客户端分享,默认是false -->
	<QQ
        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" />

    <!--
    	在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。
    	一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到
    	http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType
    	为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为
    	“product”。

    	如果目标设备上已经安装了印象笔记客户端,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项目中,密码123456

		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方法都是常用的,还有一些可以点出来

好多东西等着你去发掘,嘿嘿,就简单介绍到这里了,基本所有分享功能都能使用了,第三方授权稍后再说

----------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------

这里也有一个问题,很现实,但是也很困扰人,就是关于集成的问题,有人说怎么什么都想着集成啊,可是可以考虑一下,让你一个人两个月开发一款app,那么这些工具类的东西,难道每次都去查相应的官方api去自己写?换句话说,我相信有些厉害的程序员肯定会自己封装了一个底层框架吧,或者把框架里面的东西都单出来,然后存到github上,用什么就下载来copy改改,不可能每次都去查api再去一点一点写吧,尤其不是核心的代码,只是工具而已,我是这样认为,个人观点

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-07 08:43:40

关于android分享(sharedsdk的简单使用)的相关文章

Android 分享一个简单有趣的动画效果

本期开始于大家分享几个简单又有趣的动画 效果图: 效果还是不错的,而实现起来也并没有多大的难度,上代码喽 public int id[] = { R.drawable.fengjing_1, R.drawable.fengjing_2, R.drawable.fengjing_3, R.drawable.fengjing_4, R.drawable.fengjing_5, R.drawable.fengjing_6 }; public String list[] = { "一", &q

【源码分享下载】每日更新之Android源码之简单定时器

Android源码之简单定时器 支持平台:Android      运行环境:Android       开发语言:Java 下载地址:http://www.devstore.cn/code/info/219.html 源码简介 超简单的一个小Android实例,主界面就一个文本框和两个按钮,可以设定一个不能为小数的分钟数作为倒计时,倒计时结束会一直震动到你点停止,项目使用Timer计时,可以学习一下手机震动的使用.项目编码GBK 源码运行截图

分享一套简单的CodeSmith三层模板

Model: <%@ Template Language="C#" TargetLanguage="C#" %> <%@ Assembly Name="SchemaExplorer" %> <%@ Import Namespace="SchemaExplorer" %> <%@ Property Name="SourceTable" Type="Schem

Android peferenceActivity 自定义标题简单方法

Android peferenceActivity 自定义标题简单方法 peferenceActivity 完全使用定义好的布局. 因此不能简单象其它好窗口进行自定,现在我们需要加 一个自定义标题,比如象其它窗口一样加一个统一topbar. 假设这个topbar的布局是 title.xml 一.标准自定义标题栏方法 Android 提供自定义标题栏方法 我们简单实现. @Override protected void onCreate(Bundle savedInstanceState) { f

Xamarin.Android之封装个简单的网络请求类

一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于HttpClient和HttpWebRequest两种方式的封装. 由于对这一块还不是很熟悉,所以可能不是很严谨. 二.先上封装好的代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Json

Android——分享文本给微博、微信、qq、邮箱、我的电脑等等手机上所安装的能够通信的软件

我们有时候需要将文本.图片等分享到微博.微信.qq好友等,网上有好多代码,实现复杂,对于初学者来说,读起来很困难,其实,分享这一功能是很容易实现的.实现代码如下(经过了测试): 1.分享文本: Intent intent = new Intent(Intent.ACTION_SEND); //启动分享发送的属性     intent.setType("text/plain");//分享发送的数据类型为文本   intent.putExtra(Intent.EXTRA_SUBJECT,

【转】android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便

android进程间共享简单数据

我们知道,在android中,保存简单的数据最方便的就是使用SharedPreferences,然而,SharedPreferences虽然说也可以设置成进程间共享数据,但是并不可靠(更致命的是,不同级别的应用是无法使用SharedPreferences进行共享的,比如,普通应用无法读取系统应用的SharedPreferences数据). 那如何才能进行简单数据的跨进程共享呢,Settings.System可以很方便的进行跨进程共享数据,使用凡是也很简单: //往系统配置表里添加自定义数据 Se

【Android分享】仿WIN8系统磁贴点击效果

[Android分享]仿WIN8系统磁贴点击效果 功能分类:特效 支持平台:Android 运行环境:Eclipse 开发语言:Java 开发工具:Eclipse 源码大小:188.47KB 下载地址:http://www.dwz.cn/xslIw 源码简介 Demo源自http://www.apkbus.com/forum.php?mod=viewthread&tid=84631,利用自定义ImageView+View点击事件+动画实现的效果,因为原Demo无注释,所以本人在主要部分加入了代码

Android -- 分享功能和打开指定程序

打开指定程序                                                                                Intent intent = new Intent(); ComponentName cmp = new ComponentName("com.sina.weibo","com.sina.weibo.EditActivity"); intent.setAction(Intent.ACTION_M