news 2026/7/10 23:16:13

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【2013-11-10】Android应用开发笔记:分享至微博及友盟的基本使用

[历史归档]本文原发布于 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。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 23:15:20

2026 年 EDI 许可证办理服务商筛选指南:评测维度与机构能力分层对比

随着电商交易、线上撮合平台、供应链数字化业务监管持续收紧&#xff0c;EDI&#xff08;在线数据处理与交易处理业务&#xff09;许可证已经是具备线上交易、资金结算功能平台的必备合规资质。各地通信管理局近年审核门槛持续提高&#xff0c;核查重点集中在股权穿透、外资准入…

作者头像 李华
网站建设 2026/7/10 23:12:28

WVP-GB28181-Pro语音对讲功能深度解析与部署优化实践

WVP-GB28181-Pro语音对讲功能深度解析与部署优化实践 【免费下载链接】wvp-GB28181-pro 基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联&…

作者头像 李华
网站建设 2026/7/10 23:11:59

第一章Netty, NIO基础

NIO(Non-blocking IO / New IO)‌ 是 Java 1.4 版本引入的一套新的 IO API,其核心特性之一是支持‌非阻塞 IO‌。它主要解决了传统 BIO(Blocking IO)在高并发场景下资源消耗大、扩展性差的问题。 1. 核心概念对比:BIO vs NIO 特性 BIO (传统阻塞 IO) NIO (非阻塞 IO) ‌…

作者头像 李华
网站建设 2026/7/10 23:10:25

给 AI 长出一件新本事——插件不用敲,是聊出来的

前面几篇&#xff0c;咱们一直在“用”——用现成的工具、配现成的角色、调现成的能力。 这一篇&#xff0c;咱们换个身份&#xff1a;从用的人&#xff0c;变成造的人。 我知道“写插件”这三个字&#xff0c;听着就劝退&#xff1a;得懂代码吧&#xff1f;得会搭环境吧&…

作者头像 李华
网站建设 2026/7/10 23:05:28

SpringCloud服务治理实践

SpringCloud服务治理实践在微服务架构成为主流设计范式的今天&#xff0c;一个系统被拆分为众多独立部署、松耦合的服务单元。这种拆分带来了开发敏捷性、技术异构性和弹性伸缩等巨大优势&#xff0c;但随之而来的便是服务间通信、监控、部署和故障处理的复杂性。服务治理&…

作者头像 李华
网站建设 2026/7/10 23:04:25

拿来即用!C#上位机实现PLC远程控制:Modbus TCP协议+网口通信全解析

摘要&#xff1a;在工业自动化现场&#xff0c;上位机与PLC的通信是绕不开的核心环节。本文摒弃纯理论堆砌&#xff0c;从Modbus TCP报文结构入手&#xff0c;结合C# Socket 原生编程与 NModbus4 工业库两种方案&#xff0c;手把手带你实现一套稳定、可复用的PLC远程读写控制程…

作者头像 李华