尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【2013-11-10】Android应用开发笔记:分享至微博及友盟的基本使用

【2013-11-10】Android应用开发笔记:分享至微博及友盟的基本使用
📅 发布时间:2026/7/10 23:21:46

[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2013-11-10| 标题:Android应用开发笔记:分享至微博及友盟的基本使用|分类:编程 / android |标签:android·分享·友盟


Android应用开发笔记:分享至微博及友盟的基本使用

    • 1)下载开发文档和注册账号,获取KEY
    • 2)将指定的res和libs拷入
    • 3)修改AndroidManifestx.xml文件,添加相关权限
    • 4)页面和代码
      • activity\_main.xml
      • MainActivity.java
      • ShareUtil.java
    • 备注:

android程序如果要分享到微博之类的社交平台,一般有两种选择,第一种是进入各个平台的开发网站,下载并整合该平台的API,这种比较繁琐,一般都有种种限制,而且API提供的接口我们往往只用很少的几个。第二种是使用大公司二次整合的API,这里备份下友盟社会化分享组件的基本使用。

github:

【 https://github.com/cstriker1407/android/tree/master/HelloWeibo 】

1)下载开发文档和注册账号,获取KEY

友盟社会化组件开发文档【 http://dev.umeng.com/social/android/share/specific-integration 】

友盟的开发文档还是比较全的。

KEY:

2)将指定的res和libs拷入

按照要求将指定的res和libs拷入工程。

3)修改AndroidManifestx.xml文件,添加相关权限

<!-- ###################声明SDK使用的相关权限###################### --><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><!-- 检测网络状态 --><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><!-- 获取mac地址作为用户的备用唯一标识 --><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/><!-- 获取用户手机的IMEI,用来唯一的标识用户。 --><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- 缓存资源优先存入SDcard --><uses-permissionandroid:name="android.permission.INTERNET"/><!-- 允许应用程序联网,以便向我们的服务器端发送数据。 --><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><!-- 用于评论模块分享位置信息 --><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><!-- 用于评论模块分享位置信息 --><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name="yeah.cstriker1407.android.share.MainActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><!-- ###################注册SDK使用的Activity###################### --><!-- 分享编辑页 --><activityandroid:name="com.umeng.socialize.view.ShareActivity"android:configChanges="orientation|keyboard"android:launchMode="singleTask"android:noHistory="true"android:theme="@style/Theme.UMDialog"android:windowSoftInputMode="stateVisible|adjustResize"></activity><!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --><activityandroid:name="com.tencent.tauth.AuthActivity"/><!-- ###################添加UmengAppkey###################### --><meta-dataandroid:name="UMENG_APPKEY"android:value="XXXX"></meta-data></application>

4)页面和代码

activity_main.xml

<EditTextandroid:id="@+id/editText"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"><requestFocus/></EditText><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="选择发送平台"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="修改后发送新浪微博"/><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="直接发送新浪微博"/><Buttonandroid:id="@+id/button4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="本地是否认证"/><Buttonandroid:id="@+id/button5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="删除本地认证"/><Buttonandroid:id="@+id/button6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新浪认证"/><Buttonandroid:id="@+id/button7"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="android默认"/>

MainActivity.java

publicclassMainActivityextendsActivityimplementsOnClickListener{privateEditTexteditText;privateButtonbutton1;privateButtonbutton2;privateButtonbutton3;privateButtonbutton4;privateButtonbutton5;privateButtonbutton6;privateButtonbutton7;finalUMSocialServicemController=UMServiceFactory.getUMSocialService("com.umeng.share",RequestType.SOCIAL);@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText=(EditText)findViewById(R.id.editText);button1=(Button)findViewById(R.id.button1);button2=(Button)findViewById(R.id.button2);button3=(Button)findViewById(R.id.button3);button4=(Button)findViewById(R.id.button4);button5=(Button)findViewById(R.id.button5);button6=(Button)findViewById(R.id.button6);button7=(Button)findViewById(R.id.button7);button1.setOnClickListener(this);button2.setOnClickListener(this);button3.setOnClickListener(this);button4.setOnClickListener(this);button5.setOnClickListener(this);button6.setOnClickListener(this);button7.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.button1:{// 设置分享内容mController.setShareContent(editText.getText().toString());// 设置分享图片, 参数2为图片的地址mController.setShareMedia(newUMImage(this,"http://www.umeng.com/images/pic/banner_module_social.png"));//设置分享图片,参数2为本地图片的资源引用//mController.setShareMedia(new UMImage(getActivity(), R.drawable.icon));//设置分享图片,参数2为本地图片的路径(绝对路径)//mController.setShareMedia(new UMImage(getActivity(),// BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));// 设置分享平台选择面板的平台显示顺序// mController.getConfig().setPlatformOrder(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,// SHARE_MEDIA.QZONE,SHARE_MEDIA.QQ, SHARE_MEDIA.SINA);// 打开平台选择面板,参数2为打开分享面板时是否强制登录,false为不强制登录mController.openShare(this,false);break;}caseR.id.button2:{// 设置分享内容mController.setShareContent(editText.getText().toString());mController.postShare(MainActivity.this,SHARE_MEDIA.SINA,newSnsPostListener(){@OverridepublicvoidonStart(){Toast.makeText(MainActivity.this,"开始分享.",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonComplete(SHARE_MEDIAplatform,inteCode,SocializeEntityentity){if(eCode==200){Toast.makeText(MainActivity.this,"分享成功.",Toast.LENGTH_SHORT).show();}else{StringeMsg="";if(eCode==-101){eMsg="没有授权";}Toast.makeText(MainActivity.this,"分享失败["+eCode+"] "+eMsg,Toast.LENGTH_SHORT).show();}}});break;}caseR.id.button3:{// 设置分享内容mController.setShareContent(editText.getText().toString());mController.directShare(MainActivity.this,SHARE_MEDIA.SINA,newSnsPostListener(){@OverridepublicvoidonStart(){Toast.makeText(MainActivity.this,"分享开始",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonComplete(SHARE_MEDIAplatform,inteCode,SocializeEntityentity){if(eCode==StatusCode.ST_CODE_SUCCESSED){Toast.makeText(MainActivity.this,"分享成功",Toast.LENGTH_SHORT).show();}else{Toast.makeText(MainActivity.this,"分享失败",Toast.LENGTH_SHORT).show();}}});break;}caseR.id.button4:{booleanisSina=OauthHelper.isAuthenticated(this,SHARE_MEDIA.SINA);Toast.makeText(this,"Sina:"+Boolean.toString(isSina),Toast.LENGTH_SHORT).show();break;}caseR.id.button5:{// OauthHelper.remove(this, SHARE_MEDIA.SINA);mController.deleteOauth(this,SHARE_MEDIA.SINA,newSocializeClientListener(){@OverridepublicvoidonStart(){Toast.makeText(MainActivity.this,"on start",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonComplete(intarg0,SocializeEntityarg1){Toast.makeText(MainActivity.this,"on complete",Toast.LENGTH_SHORT).show();}});booleanisSina=OauthHelper.isAuthenticated(this,SHARE_MEDIA.SINA);Toast.makeText(this,"Sina:"+Boolean.toString(isSina),Toast.LENGTH_SHORT).show();break;}caseR.id.button6:{mController.doOauthVerify(this,SHARE_MEDIA.SINA,newUMAuthListener(){@OverridepublicvoidonStart(SHARE_MEDIAplatform){Toast.makeText(MainActivity.this,"授权开始",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonError(SocializeExceptione,SHARE_MEDIAplatform){Toast.makeText(MainActivity.this,"授权错误",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonComplete(Bundlevalue,SHARE_MEDIAplatform){Toast.makeText(MainActivity.this,"授权完成",Toast.LENGTH_SHORT).show();//获取相关授权信息或者跳转到自定义的分享编辑页面Stringuid=value.getString("uid");}@OverridepublicvoidonCancel(SHARE_MEDIAplatform){Toast.makeText(MainActivity.this,"授权取消",Toast.LENGTH_SHORT).show();}});break;}caseR.id.button7:{ShareUtil.simpleShare(this,editText.getText().toString(),null);}default:break;}}

ShareUtil.java

publicclassShareUtil{publicstaticbooleansimpleShare(Contextcontext,Stringtext,StringImagePath){if(null==text||text.trim().length()==0){returnfalse;}Intentintent=newIntent(Intent.ACTION_SEND);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(Intent.EXTRA_SUBJECT,"share");intent.putExtra(Intent.EXTRA_TITLE,"title");intent.putExtra(Intent.EXTRA_TEXT,text);intent.setType("text/plain");if(ImagePath!=null&&ImagePath.trim().length()!=0){Filefile=newFile(ImagePath.trim());if(file.canRead()){intent.setType("image/*");intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));}}context.startActivity(intent);returntrue;// context.startActivity(Intent.createChooser(intent, "请选择"));}}

备注:

1)友盟的社会化分享SDK提供的接口很易于使用,更高级的操作可以参考友盟的API。

相关新闻

  • 第一章Netty,transferTo和transferFrom区别
  • 如何构建自进化企业级 Agent 平台
  • 大模型 API 容错设计:重试、降级、熔断一个都不能少

最新新闻

  • 武器装备参数介绍
  • KDNN_torch_adapter完整安装指南:从源码编译到环境配置
  • 2026年评价好的省考冲刺营机构 - 热点品牌推荐
  • 亨得利官方名表服务中心|全新地址电话权威信息声明(2026年7月最新) - 亨得利官方博客
  • 2026年东乡黄金回收怎么选?3家正规靠谱渠道全公开,4个甄别技巧帮你避坑 - 福金阁黄金回收
  • Paramiko SFTP 文件传输:Python 3.9 环境实现批量上传/下载的5个关键步骤

日新闻

  • OpenClaw本地部署:一键直连微信的私有化AI Agent实战指南
  • Kubernetes 系列【10】控制器:ReplicaSet(副本集)
  • 怎么寄快递才能便宜呢?2026年7月寄快递省钱攻略 - 生活情报姬

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号