andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解。下面就讲解一下:


下载地址:http://download.csdn.net/detail/u014608640/7490357


首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件:

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能_第1张图片

根据我自己在学习的过程中只用到了第一个文件夹的andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能_第2张图片

libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个

ShareSdk.xml文件  这个很重要的,大概意思就是:提供各个客户端能否分享,将这个也要复制到自己做的项目的assets 目录下


第二步,我们需要将第3个文件Sample打开,里面有项目需要用到的一些类,

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能_第3张图片

这个也需要导入到项目中去的,会自动生成一个小项目,注意:不是主程序哦。这个程序中可以进行测试的,秘钥是123456


第三步:配置AndroidManifest.xml










其他配置:

  
        

            
            

            
            

            
            
                

                

                
                
            

            
            
                

                

                
                
            
        
        
        
        
        
        


配置完之后,就给大家说一下添加分享代码

在您的代码中调用此方法,即可打开一键分享功能进行分享

列入一个按钮:

                        ShareSDKUtil shareSDKUtil = new ShareSDKUtil(this);
			shareSDKUtil.setPage(getWindow().getDecorView());
			shareSDKUtil.showShare(false, null);


核心代码:

public class ShareSDKUtil {

	private Context mContext;

	private View mView;

	public ShareSDKUtil(Context context) {
		this.mContext = context;
	}

	public Context getContext() {
		return mContext;
	}

	/**
	 * ShareSDK集成方法有两种
* 1、第一种是引用方式,例如引用onekeyshare项目,onekeyshare项目再引用mainlibs库
* 2、第二种是把onekeyshare和mainlibs集成到项目中,本例子就是用第二种方式
请看“ShareSDK * 使用说明文档”,SDK下载目录中
或者看网络集成文档 * http://wiki.sharesdk.cn/Android_%E5%BF%AB * %E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97 * 3、混淆时,把sample或者本例子的混淆代码copy过去,在proguard-project.txt文件中 * * * 平台配置信息有三种方式: 1、在我们后台配置各个微博平台的key * 2、在代码中配置各个微博平台的key,http://sharesdk.cn/androidDoc * /cn/sharesdk/framework/ShareSDK.html * 3、在配置文件中配置,本例子里面的assets/ShareSDK.conf, */ public void showShare(boolean silent, String platform) { final OnekeyShare oks = new OnekeyShare(); oks.setNotification(R.drawable.app_icon, getContext().getString(R.string.app_name)); oks.setAddress("12345678901"); oks.setTitle(getContext().getString(R.string.app_name)); oks.setTitleUrl("http://www.xx.com"); oks.setText("555555555555555555"); // oks.setImagePath(Environment.getExternalStorageDirectory().getAbsolutePath()+"/AndyDemo/ScreenImage/Screen_1.png"); //weixin // oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");//MainActivity.TEST_IMAGE_URL oks.setImageUrl("/sdcard/AndyDemo/ScreenImage/Screen_1.png"); // 不能为空,否则微信分享类型为文本 oks.setUrl("http://www.xx.com");// WeiXin // oks.setFilePath(MainActivity.TEST_IMAGE);//WeiXin // oks.setComment(getContext().getString(R.string.share));// QZone oks.setSite(getContext().getString(R.string.app_name));// QZone oks.setSiteUrl("http://www.xx.com");// QZone // oks.setVenueName("ShareSDK"); // oks.setVenueDescription("This is a beautiful place!"); // oks.setLatitude(23.056081f); // oks.setLongitude(113.385708f); oks.setSilent(silent); if (platform != null) { oks.setPlatform(platform); } // 取消注释,可以实现对具体的View进行截屏分享 // Add by yinghui.hong 取消注释的同时需要将setImagePath注释,见{@link ShareCore share} // oks.setViewToShare(getPage()); oks.setViewToShare((Activity)getContext()); // 去除注释,可令编辑页面显示为Dialog模式 // oks.setDialogMode(); // 去除注释,在自动授权时可以禁用SSO方式 // oks.disableSSOWhenAuthorize(); // 去除注释,则快捷分享的操作结果将通过OneKeyShareCallback回调 // oks.setCallback(new OneKeyShareCallback()); // oks.setShareContentCustomizeCallback(new // ShareContentCustomizeDemo()); // 去除注释,演示在九宫格设置自定义的图标 // Bitmap logo = BitmapFactory.decodeResource(menu.getResources(), // R.drawable.ic_launcher); // String label = menu.getResources().getString(R.string.app_name); // OnClickListener listener = new OnClickListener() { // public void onClick(View v) { // String text = "Customer Logo -- ShareSDK " + // ShareSDK.getSDKVersionName(); // Toast.makeText(menu.getContext(), text, Toast.LENGTH_SHORT).show(); // oks.finish(); // } // }; // oks.setCustomerLogo(logo, label, listener); // 去除注释,则快捷分享九宫格中将隐藏新浪微博和腾讯微博 // oks.addHiddenPlatform(SinaWeibo.NAME); // oks.addHiddenPlatform(TencentWeibo.NAME); oks.show(getContext()); } public void setPage(View view) { this.mView = view; } protected View getPage() { return mView; }


我自己在做的过程中遇到的问题也说一下:  做这些功能分为2种,一种是需要审核的,我做的就是第一种,第2种是不需要审核的,这个大家可以去看下API,

像新浪和微信.QQ空间必须要审核才可以分享的,审核的时间有点长,在微信审核的时候那个应用签名一定要注意了,不能填错哦,否则就算审核成功了,也无法

分享的哦!


QQ空间是支持网络图片,我做的时候本地图片会显示不出来,查了下原因,是因为QQ空间没提过这个功能,所以只能分享文字!










你可能感兴趣的:(Android,日常记录,android,分享,ShareSdk)