当前位置:   article > 正文

android shareSDK 微博分享案例_program type already present: cn.sharesdk.framewor

program type already present: cn.sharesdk.framework.innershareparams
android shareSDK 微博分享案例

ShareSDK
APP_KEY 219b1121fc68


腾讯微博
key 801517904
secret bfba83ae253c8f38dabe22c5fa4093bd




新浪微博
key 3815341537
secret f19fb8f89acc090716de7e3bde2e5f9e
回调页:https://api.weibo.com/oauth2/default.html
包名+keySotre签名:91f05bce6758f1a1e870a4f3fa5f871b


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

准备阶段:


使用ShareSDK步骤
1. ShareSDK官网,创建应用 获取Key
2. ShareSDK官网,下载SDK
3. 使ShareSDK的DEMO正常运行
(类库:ShareSDK for Android
  demo:ShareSDK for Android Sample)
4.创建新的项目
5.去各平台注册key
新浪微博:
 a.证书签名需要个人证书导出项目时获取到
MD5 : 91:F0:5B:CE:67:58:F1:A1:E8:70:A4:F3:FA:5F:87:1B
证书格式为小写字母并不含:
91f05bce6758f1a1e870a4f3fa5f871b
 b. 授权回调页:https://api.weibo.com/oauth2/default.html

6.sample里所有的图片以及values拷入当前新的项目: 

此时需要修改 main_activity.xml  and  menu.xml 中跟 @String/ 有关的信息!

7.sample里asset里Sharesdk.xml拷入当前新的项目,并且修改指定内容
RedirectUrl:如果指定授权回调页,就填写回调页,如没有,就填写应用网址
8.需要把sample里mainifest中的权限拷入当前新的项目
9.sample里mainifest中的ShareSDKUIShell,activity注册到当前新的项目中,代码如下:
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize" >
 </activity>
 10.拷入需要用到的jar包
 必拷:mframework.jar
 必拷:ShareSDK-Core-2.3.8jar

 分享指定平台:
 ShareSDK-XXX.jar

 11.将onkeyshare包拷贝到当前项目中


分享步骤:

 ***************************
 1.初始化ShareSDK
 ShareSDK.init(this);
 2.设置指定平台
 Platform p=ShareSDK.getPlatform(XXX.NAME);
 3.设置平台监听器
 p.setPlatform
 AcitonListener{
  1.error
  2.complete
  3.cancel
 }
 4.进行授权
 p.rauthorize();
 5.重写平台监听器中的complete
 获取某平台参数对象
 Platform.ShareParams ps=
 new XXX.ShareParams();
 添加要分享的数据
 ps.setText/setImageUrl/set..
 分享

 p.share(ps);



分享案例代码:

  1. package com.example.lovesharesdkdemo;
  2. import java.util.HashMap;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.Menu;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.TextView;
  10. import cn.sharesdk.framework.Platform;
  11. import cn.sharesdk.framework.PlatformActionListener;
  12. import cn.sharesdk.framework.ShareSDK;
  13. import cn.sharesdk.tencent.weibo.TencentWeibo;
  14. public class MainActivity extends Activity {
  15. private Platform platform;
  16. private TextView textView;
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. //1 初始化SDK
  22. ShareSDK.initSDK(getApplicationContext());
  23. //2.设置指定平台
  24. platform = ShareSDK.getPlatform(TencentWeibo.NAME);
  25. //3 获取组件 注册事件
  26. textView = (TextView) this.findViewById(R.id.buttton);
  27. textView.setOnClickListener(new OnClickListener() {
  28. @Override
  29. public void onClick(View v) {
  30. //TOFO 分享SDK
  31. getShareSDK();
  32. }
  33. private void getShareSDK() {
  34. //3 给平台添加 listener
  35. platform.setPlatformActionListener(new PlatformActionListener() {
  36. @Override
  37. public void onError(Platform arg0, int arg1, Throwable arg2) {
  38. // TODO error useful
  39. Log.i("error", "---error="+arg2.getLocalizedMessage());
  40. }
  41. @Override
  42. public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
  43. // TODO finished useful
  44. //设置分享的参数:
  45. TencentWeibo.ShareParams shareParams = new TencentWeibo.ShareParams();
  46. shareParams.setText("美女的世界");
  47. shareParams.setImageUrl("http://t12.baidu.com/it/u=750616964,1500186643&fm=59");
  48. // 分享
  49. platform.share(shareParams);
  50. }
  51. @Override
  52. public void onCancel(Platform arg0, int arg1) {
  53. // TODO cancel
  54. }
  55. });
  56. //4 授权平台! 异步任务:
  57. platform.authorize();
  58. }
  59. });
  60. }
  61. @Override
  62. public boolean onCreateOptionsMenu(Menu menu) {
  63. // Inflate the menu; this adds items to the action bar if it is present.
  64. getMenuInflater().inflate(R.menu.main, menu);
  65. return true;
  66. }
  67. }


androidmainfes.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.lovesharesdkdemo"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk
  7. android:minSdkVersion="14"
  8. android:targetSdkVersion="19" />
  9. <!-- 权限设置 -->
  10. <uses-permission android:name="android.permission.GET_TASKS" />
  11. <uses-permission android:name="android.permission.INTERNET" />
  12. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  13. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  14. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  15. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  16. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  17. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
  18. <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  19. <application
  20. android:allowBackup="true"
  21. android:icon="@drawable/ic_launcher"
  22. android:label="@string/app_name"
  23. android:theme="@style/AppTheme" >
  24. <activity
  25. android:name="com.example.lovesharesdkdemo.MainActivity"
  26. android:label="@string/app_name" >
  27. <intent-filter>
  28. <action android:name="android.intent.action.MAIN" />
  29. <category android:name="android.intent.category.LAUNCHER" />
  30. </intent-filter>
  31. </activity>
  32. <!-- SdkShare frameWork -->
  33. <activity
  34. android:name="cn.sharesdk.framework.ShareSDKUIShell"
  35. android:theme="@android:style/Theme.Translucent.NoTitleBar"
  36. android:configChanges="keyboardHidden|orientation|screenSize"
  37. android:windowSoftInputMode="stateHidden|adjustResize" >
  38. </activity>
  39. </application>
  40. </manifest>


ShareSDK.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DevInfor>
  3. <!--
  4. 说明:
  5. 1、表格中的第一项
  6. <ShareSDK
  7. AppKey="api20" />
  8. 是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey
  9. 2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:
  10. <SinaWeibo
  11. Id="1"
  12. SortId="1"
  13. AppKey="568898243"
  14. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
  15. RedirectUrl="http://www.sharesdk.cn"
  16. Enable="true" />
  17. 其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大
  18. 越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息
  19. Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
  20. Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包
  21. 已经添加到应用中,平台实例依然不可获取。
  22. 各个平台注册应用信息的地址如下:
  23. 新浪微博 http://open.weibo.com
  24. 腾讯微博 http://dev.t.qq.com
  25. QQ空间 http://connect.qq.com/intro/login/
  26. 微信好友 http://open.weixin.qq.com
  27. Facebook https://developers.facebook.com
  28. Twitter https://dev.twitter.com
  29. 人人网 http://dev.renren.com
  30. 开心网 http://open.kaixin001.com
  31. 搜狐微博 http://open.t.sohu.com
  32. 网易微博 http://open.t.163.com
  33. 豆瓣 http://developers.douban.com
  34. 有道云笔记 http://note.youdao.com/open/developguide.html#app
  35. 印象笔记 https://dev.evernote.com/
  36. Linkedin https://www.linkedin.com/secure/developer?newapp=
  37. FourSquare https://developer.foursquare.com/
  38. 搜狐随身看 https://open.sohu.com/
  39. Flickr http://www.flickr.com/services/
  40. Pinterest http://developers.pinterest.com/
  41. Tumblr http://www.tumblr.com/developers
  42. Dropbox https://www.dropbox.com/developers
  43. Instagram http://instagram.com/developer#
  44. VKontakte http://vk.com/dev
  45. 易信好友 http://open.yixin.im/
  46. 明道 http://open.mingdao.com/
  47. Line http://media.line.me/zh-hant/
  48. -->
  49. <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
  50. <ShareSDK
  51. AppKey = "3500df6f55df"/>
  52. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
  53. <SinaWeibo
  54. Id="1"
  55. SortId="1"
  56. AppKey="568898243"
  57. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
  58. RedirectUrl="http://www.sharesdk.cn"
  59. ShareByAppClient="false"
  60. Enable="true" />
  61. <!-- 腾讯微博 -->
  62. <TencentWeibo
  63. Id="2"
  64. SortId="2"
  65. AppKey="801545336"
  66. AppSecret="b3def3a6ff684bee7de4e49d7884c0b3"
  67. RedirectUri="http://www.baidu.com"
  68. Enable="true" />
  69. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
  70. <QZone
  71. Id="3"
  72. SortId="3"
  73. AppId="100371282"
  74. AppKey="aed9b0303e3ed1e27bae87c33761161d"
  75. ShareByAppClient="true"
  76. Enable="true" />
  77. <!--
  78. Wechat微信和WechatMoments微信朋友圈的appid是一样的;
  79. 注意:开发者不能用我们这两个平台的appid,否则分享不了
  80. 微信测试的时候,微信测试需要先签名打包出apk,
  81. sample测试微信,要先签名打包,keystore在sample项目中,密码123456
  82. BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
  83. 审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,
  84. 默认值为false。此外,微信收藏不支持此字段。
  85. -->
  86. <Wechat
  87. Id="4"
  88. SortId="4"
  89. AppId="wx4868b35061f87885"
  90. AppSecret="64020361b8ec4c99936c0e3999a9f249"
  91. BypassApproval="false"
  92. Enable="true" />
  93. <WechatMoments
  94. Id="5"
  95. SortId="5"
  96. AppId="wx4868b35061f87885"
  97. AppSecret="64020361b8ec4c99936c0e3999a9f249"
  98. BypassApproval="true"
  99. Enable="true" />
  100. <WechatFavorite
  101. Id="6"
  102. SortId="6"
  103. AppId="wx4868b35061f87885"
  104. AppSecret="64020361b8ec4c99936c0e3999a9f249"
  105. Enable="true" />
  106. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
  107. <QQ
  108. Id="7"
  109. SortId="7"
  110. AppId="100371282"
  111. AppKey="aed9b0303e3ed1e27bae87c33761161d"
  112. ShareByAppClient="true"
  113. Enable="true" />
  114. <Facebook
  115. Id="8"
  116. SortId="8"
  117. ConsumerKey="107704292745179"
  118. ConsumerSecret="38053202e1a5fe26c80c753071f0b573"
  119. Enable="true" />
  120. <Twitter
  121. Id="9"
  122. SortId="9"
  123. ConsumerKey="mnTGqtXk0TYMXYTN7qUxg"
  124. ConsumerSecret="ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"
  125. CallbackUrl="http://www.sharesdk.cn"
  126. Enable="true" />
  127. <Renren
  128. Id="10"
  129. SortId="10"
  130. AppId="226427"
  131. ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"
  132. SecretKey="f29df781abdd4f49beca5a2194676ca4"
  133. Enable="true" />
  134. <KaiXin
  135. Id="11"
  136. SortId="11"
  137. AppKey="358443394194887cee81ff5890870c7c"
  138. AppSecret="da32179d859c016169f66d90b6db2a23"
  139. RedirectUri="http://www.sharesdk.cn"
  140. Enable="true" />
  141. <Email
  142. Id="12"
  143. SortId="12"
  144. Enable="true" />
  145. <ShortMessage
  146. Id="13"
  147. SortId="13"
  148. Enable="true" />
  149. <SohuMicroBlog
  150. Id="14"
  151. SortId="14"
  152. ApiKey="q70QBQM9T0COxzYpGLj9"
  153. ConsumerKey="q70QBQM9T0COxzYpGLj9"
  154. ConsumerSecret="XXYrx%QXbS!uA^m2$8TaD4T1HQoRPUH0gaG2BgBd"
  155. CallbackUrl="http://www.sharesdk.cn"
  156. Enable="true" />
  157. <NetEaseMicroBlog
  158. Id="15"
  159. SortId="15"
  160. ConsumerKey="T5EI7BXe13vfyDuy"
  161. ConsumerSecret="gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"
  162. RedirectUri="http://www.shareSDK.cn"
  163. Enable="true" />
  164. <Douban
  165. Id="16"
  166. SortId="16"
  167. ApiKey="02e2cbe5ca06de5908a863b15e149b0b"
  168. Secret="9f1e7b4f71304f2f"
  169. RedirectUri="http://www.sharesdk.cn"
  170. Enable="true" />
  171. <YouDao
  172. Id="17"
  173. SortId="17"
  174. HostType="product"
  175. ConsumerKey="dcde25dca105bcc36884ed4534dab940"
  176. ConsumerSecret="d98217b4020e7f1874263795f44838fe"
  177. RedirectUri="http://www.sharesdk.cn"
  178. Enable="true" />
  179. <SohuSuishenkan
  180. Id="18"
  181. SortId="18"
  182. AppKey="e16680a815134504b746c86e08a19db0"
  183. AppSecret="b8eec53707c3976efc91614dd16ef81c"
  184. RedirectUri="http://sharesdk.cn"
  185. Enable="true" />
  186. <!--
  187. 在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。
  188. 一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到
  189. http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType
  190. 为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为
  191. “product”。
  192. 如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但
  193. 是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。
  194. -->
  195. <Evernote
  196. Id="19"
  197. SortId="19"
  198. HostType="sandbox"
  199. ConsumerKey="sharesdk-7807"
  200. ConsumerSecret="d05bf86993836004"
  201. ShareByAppClient="false"
  202. Enable="true" />
  203. <LinkedIn
  204. Id="20"
  205. SortId="20"
  206. ApiKey="ejo5ibkye3vo"
  207. SecretKey="cC7B2jpxITqPLZ5M"
  208. RedirectUrl="http://sharesdk.cn"
  209. Enable="true" />
  210. <GooglePlus
  211. Id="21"
  212. SortId="21"
  213. Enable="true" />
  214. <FourSquare
  215. Id="22"
  216. SortId="22"
  217. ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"
  218. ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"
  219. RedirectUrl="http://www.sharesdk.cn"
  220. Enable="true" />
  221. <Pinterest
  222. Id="23"
  223. SortId="23"
  224. ClientId="1432928"
  225. Enable="true" />
  226. <Flickr
  227. Id="24"
  228. SortId="24"
  229. ApiKey="33d833ee6b6fca49943363282dd313dd"
  230. ApiSecret="3a2c5b42a8fbb8bb"
  231. RedirectUri="http://www.sharesdk.cn"
  232. Enable="true" />
  233. <Tumblr
  234. Id="25"
  235. SortId="25"
  236. OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"
  237. SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"
  238. CallbackUrl="http://sharesdk.cn"
  239. Enable="true" />
  240. <Dropbox
  241. Id="26"
  242. SortId="26"
  243. AppKey="7janx53ilz11gbs"
  244. AppSecret="c1hpx5fz6tzkm32"
  245. Enable="true" />
  246. <VKontakte
  247. Id="27"
  248. SortId="27"
  249. ApplicationId="3921561"
  250. Enable="true" />
  251. <Instagram
  252. Id="28"
  253. SortId="28"
  254. ClientId="ff68e3216b4f4f989121aa1c2962d058"
  255. ClientSecret="1b2e82f110264869b3505c3fe34e31a1"
  256. RedirectUri="http://sharesdk.cn"
  257. Enable="true" />
  258. <!--
  259. Yixin易信和YixinMoments易信朋友圈的appid是一样的;
  260. 注意:开发者不能用我们这两个平台的appid,否则分享不了
  261. 易信测试的时候需要先签名打包出apk,
  262. sample测试易信,要先签名打包,keystore在sample项目中,密码123456
  263. BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
  264. 审核的应用也可以执行分享,但是仅限于分享文字或图片,不能分享其他类型,
  265. 默认值为false。
  266. -->
  267. <Yixin
  268. Id="29"
  269. SortId="29"
  270. AppId="yx0d9a9f9088ea44d78680f3274da1765f"
  271. BypassApproval="true"
  272. Enable="true" />
  273. <YixinMoments
  274. Id="30"
  275. SortId="30"
  276. AppId="yx0d9a9f9088ea44d78680f3274da1765f"
  277. BypassApproval="true"
  278. Enable="true" />
  279. <Mingdao
  280. Id="31"
  281. SortId="31"
  282. AppKey="EEEE9578D1D431D3215D8C21BF5357E3"
  283. AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"
  284. RedirectUri="http://sharesdk.cn"
  285. Enable="true" />
  286. <Line
  287. Id="32"
  288. SortId="32"
  289. Enable="true" />
  290. <KakaoTalk
  291. Id="33"
  292. SortId="33"
  293. Enable="true" />
  294. <KakaoStory
  295. Id="34"
  296. SortId="34"
  297. Enable="true" />
  298. </DevInfor>




需要的包:如图:



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/283856?site
推荐阅读
相关标签
  

闽ICP备14008679号