Android学习之微博SDK集成及实现分享到微博
2016-03-22 16:41
639 查看
分享自己的APP内容到微博或者其他平台是个很常用的需求,也有很多种方式可以实现微博的分享,官方当然肯定是有提供方式来实现微博的分享的,很多第三方服务也可以帮助我们实现微博的分享,当然逼格最高的肯定是使用官方的方式来实现,这毋庸置疑是我们的首选,因为第三方的服务不一定比官方的好用和靠谱。下面来讲下集成微博SDK及实现分享到微博的流程:
1.进入微博开放平台创建应用,得到App Key
微博开放平台地址:http://open.weibo.com/
点击移动应用→立即接入→继续创建→创建新应用,然后根据提示填完整应用的信息,应用的签名需要使用到MD5签名生成工具,MD5签名生成工具及微博SDK在下面的地址下载,MD5签名生成工具用于生成签名,输入包名就能生成签名,复制签名填到信息里即可,注意这里窝使用的是直接debug运行在手机里的App来生成签名的,我想正式场合下大家应该使用签名过的APK来安装到手机里,并生成签名。
微博SDK下载地址:https://github.com/sinaweibosdk/weibo_android_sdk
2.信息填完整之后就会得到App Key,如图
3.SDK下载好之后会发现里面有很多东西,接下来开始集成SDK,这里以Android Studio和Mac OS X为例:
首先在项目中新建文件夹jniLibs,然后复制SDK里的libs文件夹之下所有的.so文件进去,然后在项目中的libs之下也复制一份,同时将weiboSDKCore_3.1.4.jar复制进去,右键Add As Library...
4.SDK文件夹里有文档,大家根据文档来使用SDK:
先添加权限:
5.然后就是使用SDK提供的方法来分享,先是初始化IWeiboShareAPI,输入我们的App Key。然后获取TextObject和ImageObject,这里可以设置自己想要分享的文字和图片,当然还可以分享视频之类的媒体,这里就不演示了。再初始化WeiboMultiMessage对象,设置属性,初始化SendMultiMessageToWeiboRequest对象,设置属性,然后通过iWeiboShareAPI.sendRequest()方法发送请求消息到微博,唤起微博分享界面。
效果图:
Demo地址:http://download.csdn.net/detail/qq_23940659/9469498
1.进入微博开放平台创建应用,得到App Key
微博开放平台地址:http://open.weibo.com/
点击移动应用→立即接入→继续创建→创建新应用,然后根据提示填完整应用的信息,应用的签名需要使用到MD5签名生成工具,MD5签名生成工具及微博SDK在下面的地址下载,MD5签名生成工具用于生成签名,输入包名就能生成签名,复制签名填到信息里即可,注意这里窝使用的是直接debug运行在手机里的App来生成签名的,我想正式场合下大家应该使用签名过的APK来安装到手机里,并生成签名。
微博SDK下载地址:https://github.com/sinaweibosdk/weibo_android_sdk
2.信息填完整之后就会得到App Key,如图
3.SDK下载好之后会发现里面有很多东西,接下来开始集成SDK,这里以Android Studio和Mac OS X为例:
首先在项目中新建文件夹jniLibs,然后复制SDK里的libs文件夹之下所有的.so文件进去,然后在项目中的libs之下也复制一份,同时将weiboSDKCore_3.1.4.jar复制进去,右键Add As Library...
4.SDK文件夹里有文档,大家根据文档来使用SDK:
先添加权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
5.然后就是使用SDK提供的方法来分享,先是初始化IWeiboShareAPI,输入我们的App Key。然后获取TextObject和ImageObject,这里可以设置自己想要分享的文字和图片,当然还可以分享视频之类的媒体,这里就不演示了。再初始化WeiboMultiMessage对象,设置属性,初始化SendMultiMessageToWeiboRequest对象,设置属性,然后通过iWeiboShareAPI.sendRequest()方法发送请求消息到微博,唤起微博分享界面。
/** * 主界面 * * @author yuzhentao */ public class MainActivity extends Activity { private AlertDialog alertDialog; private Window window; private IWeiboShareAPI iWeiboShareAPI; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { Context context = this; iWeiboShareAPI = WeiboShareSDK.createWeiboAPI(context, "");//这里输入App Key iWeiboShareAPI.registerApp();//将应用注册到微博客户端 alertDialog = new AlertDialog.Builder(context).create(); window = alertDialog.getWindow(); findViewById(R.id.button_activity_main).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showShareAlertDialog(); } }); } /** * 显示分享的AlertDialog */ private void showShareAlertDialog() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; alertDialog.setCancelable(true); alertDialog.setCanceledOnTouchOutside(true); alertDialog.show(); window.setLayout((int) (screenWidth * 0.95F), LinearLayout.LayoutParams.WRAP_CONTENT); window.setContentView(R.layout.alert_dialog_share_custom); TextView tvMessage = (TextView) window.findViewById(R.id.textview_message_alert_dialog_share_custom); LinearLayout llWeibo = (LinearLayout) window.findViewById(R.id.linearlayout_weibo_alert_dialog_share_custom); tvMessage.setText("分享到"); llWeibo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new AsyncTask<Void, Void, Void>() { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Void doInBackground(Void... params) { sendMultiMessageToWeibo(true, true); return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); alertDialog.dismiss(); } }.execute(); } }); } /** * 发送多种消息到微博 * * @param hasText:是否有文本 * @param hasImage:是否有图片 */ private void sendMultiMessageToWeibo(boolean hasText, boolean hasImage) { WeiboMultiMessage weiboMessage = new WeiboMultiMessage();//初始化微博的分享消息 if (hasText) { weiboMessage.textObject = getTextObj(); } if (hasImage) { weiboMessage.mediaObject = getImageObj(); } SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest(); request.transaction = String.valueOf(System.currentTimeMillis()); request.multiMessage = weiboMessage; iWeiboShareAPI.sendRequest(this, request);//发送请求消息到微博,唤起微博分享界面 } /** * 获取文本信息对象 * * @return TextObject */ private TextObject getTextObj() { TextObject textObject = new TextObject(); textObject.text = "分享自...";//这里输入文本 return textObject; } /** * 获取图片信息对象 * * @return ImageObject */ private ImageObject getImageObj() { ImageObject imageObject = new ImageObject(); URL url; try { url = new URL("http://b.zol-img.com.cn/sjbizhi/images/9/320x510/1452499239911.jpeg");//这里输入图片地址 Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream()); if (bitmap.getByteCount() > 4096000) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = bitmap.getByteCount() / 4096000;//缩放比例 options.inJustDecodeBounds = false; bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream(), null, options); } } catch (IOException e) { e.printStackTrace(); } imageObject.setImageObject(bitmap); } catch (MalformedURLException e) { e.printStackTrace(); } return imageObject; } }
效果图:
Demo地址:http://download.csdn.net/detail/qq_23940659/9469498
相关文章推荐
- Android6.0系统适配桌面歌词效果
- Android Service完全解析,关于服务你所需知道的一切(上)
- Android Scroll分析(一)
- android 抽取basepager类
- greenDao在android studio中的引用
- Android App中读取XML与JSON格式数据的基本方法示例
- Android GridView不改变背景色实现网格线效果
- AndroidStudio 布局文件出错的问题
- Android项目开发实战-2048游戏
- Android设计支持库 Design Support Library
- Android中ListView的几种常见的优化方法
- Android开发编程Fragment对象引出新功能
- Android四大组件之BroadcastReceiver
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity
- 【非日常】AndroidStudio,opncv,ndk,jni,人脸识别示例程序
- android中不同版本兼容包的区别
- Android BitmapFactory图片压缩处理(大位图二次採样压缩处理)
- Android中点击文字打开QQ对话
- Android Studio多工程引用同一个library项目配置方法
- 【转】Android Studio下加入百度地图的使用 (一)——环境搭建