热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android中集成ShareSDK

前言:大大小小的项目现在应该都会加入分享,sharesdk无非是开发者的首选,关于接入ShareSdk步骤官网讲的很详细ShareSdk官

前言:大大小小的项目现在应该都会加入分享,sharesdk无非是开发者的首选,关于接入ShareSdk步骤官网讲的很详细ShareSdk官网,下面贴出自己封装的分享工具类。

分享工具类:代码地址

下面贴出源码:

ShareUtil

/*** 分享操作类*/
public class ShareUtil {private static Context sContext;/*** 静态代码块,用于初始化sharesdk* 这里是我根据自己项目的封装获取的上下文,* 大家可以在项目启动时application的相关类中写入获取上下文,然后在这里引用*/static {sContext = GlobalVars.getContext();ShareSDK.initSDK(sContext);}/**** @param context 上下文* @param title 分享显示的标题* @param content 分享显示的内容* @param comment 分享的评论* @param url 分享后点击的链接地址*/public static void showShare(Context context, String title, String content, String comment, String url) {OnekeyShare oks = new OnekeyShare();//关闭sso授权oks.disableSSOWhenAuthorize();// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用oks.setTitle(title);// titleUrl是标题的网络链接,仅在人人网和QQ空间使用oks.setTitleUrl(url);// text是分享文本,所有平台都需要这个字段oks.setText(content);//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博oks.setImageUrl(url);// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数oks.setImagePath(getShareLogImgPath());//确保SDcard下面存在此张图片// url仅在微信(包括好友和朋友圈)中使用oks.setUrl(url);// comment是我对这条分享的评论,仅在人人网和QQ空间使用oks.setComment(comment);// site是分享此内容的网站名称,仅在QQ空间使用oks.setSite("扶睿课堂");// siteUrl是分享此内容的网站地址,仅在QQ空间使用oks.setSiteUrl(url);// 启动分享GUIoks.show(context);}/**** @return 返回assets下的图片,该图片一般为app的logo*/private static String getShareLogImgPath() {File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + ".fredu");if (!dir.exists())dir.mkdirs();File imgFile = new File(dir.getAbsolutePath() + File.separator+ "share_logo.png");if (!imgFile.exists()) {FileUtils.copyFileFromAssets("share_logo.png",imgFile.getAbsolutePath());}return imgFile.getAbsolutePath();}
}

FileUtils(ShareUtils中用到的)

/*** 文件操作类*/
public class FileUtils {private static final String TAG = "FileUtils";/*** @param file*/public static void deleteFile(File file) {if(file == null || !file.exists()) {return;}if(file.isFile()) {final File to = new File( file.getAbsolutePath() + System.currentTimeMillis());file.renameTo( to);to.delete();}else {File[] files = file.listFiles();if(files != null && files.length > 0) {for(File innerFile: files) {deleteFile( innerFile);}}final File to = new File( file.getAbsolutePath() + System.currentTimeMillis());file.renameTo( to);to.delete();}}/*** Try to return the absolute file path from the given Uri** @param context* @param uri* @return the file path or null*/public static String getRealFilePath(final Context context, final Uri uri ) {if ( null == uri ) return null;final String scheme = uri.getScheme();String data = null;if ( scheme == null )data = uri.getPath();else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {data = uri.getPath();} else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {Cursor cursor = context.getContentResolver().query( uri, new String[] { MediaStore.Images.ImageColumns.DATA }, null, null, null );if ( null != cursor ) {if ( cursor.moveToFirst() ) {int index = cursor.getColumnIndex( MediaStore.Images.ImageColumns.DATA );if ( index > -1 ) {data = cursor.getString( index );}}cursor.close();}}return data;}public static void copyFileFromAssets(String resourceFileName, String targetFile) {AssetManager am = GlobalVars.getContext().getAssets();try {InputStream fis = am.open(resourceFileName);OutputStream os = new FileOutputStream(new File(targetFile));byte[] buff = new byte[1024];int len = 0;while ((len = fis.read(buff)) != -1) {os.write(buff, 0, len);}os.flush();os.close();fis.close();} catch (IOException e) {LogUtil.error(TAG, e);}}
}

集成分享遇到的问题:
在项目中集成分享后,需要去相关平台申请获得相关的id和key(这个只要跟着官网的步骤走,就没问题)。申请时会用到app签名,如果还不知道怎么获取可以看看这篇文章如何获取app签名。那么问题来了,如果相关平台申请时填入的签名是release的签名,那么请你在测试分享的时候也打成release包;反之如果是debug那么也是打成debug包测试。不然的话你会遇到和我一样的疑问(怎么昨天分享还好好的今天就不能用了,我也没动过代码啊,当然这样弱智的问题也就我这样的初学者会遇到然后还傻不拉几的郁闷上半天,对了遇到问题千万别心慌,自己找不到答案,像这种第三方就去找客服,那里会告诉你)。好了分享就这样搞定,其实没什么难点,静下心跟着官网步骤走就没错。

说明:以上代码是根据目前为止最新的文档封装的,大家可以参考,一切以官网为准。

end.

欢迎留言指教!


推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
fggdsfgwjff4
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有