shareSDK官方文档:http://wiki.mob.com/android-sharesdk完整的集成文档/
1.首先过一遍官网集成文档,了解具体步骤
准备工作:mob平台官网注册账号登录并从官网后台创建应用生成appkey和appSecret,下载所需分享平台的SDK。坑num2:ShareSDK.xml中对应的第三方平台的AppId、AppSecret需在对应开放平台注册。QQ中的BypassApproval设置成false,亲测(分享连接的时候只有文本消息,标题链接等都分享失败)。Ps:研究了一下午,不知道官方文档为什么是true。
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import com.aisino.wsbs.ahgs_wsbs.common.R;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import cn.sharesdk.onekeyshare.OnekeyShare;
/**
* 开发人: 酥小鱼
* 时间: 2017/12/4.
* 版本: V 1.0
* 所在包: com.aisino.wsbs.ahgs_wsbs.common.utils
* 内容:分享的工具类
*/
public class ShareUtil {
private static String bitmapPath;
public ShareUtil() {
}
public static void showShare(Context context, String string, String url, String string2) {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
oks.setTitle(string2);
// titleUrl是标题的网络链接,QQ和QQ空间等使用
oks.setTitleUrl(url);
// text是分享文本,所有平台都需要这个字段
oks.setText(string);
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
Resources res = context.getResources();
Bitmap bmp = BitmapFactory.decodeResource(res, R.mipmap.common_ic_launcher);
bitmapPath = takePicRootDir(context);
saveBitmap(bmp);
oks.setImagePath(bitmapPath);
// oks.setImageData(new String(datas));//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(url);
// 启动分享GUI
oks.show(context);
}
private static void saveBitmap(Bitmap bitmap) {
File file = new File(bitmapPath);
if (file.exists()) {
file.delete();
}
FileOutputStream out;
try {
out = new FileOutputStream(file);
if (bitmap.compress(Bitmap.CompressFormat.PNG, 90, out)) {
out.flush();
out.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 判断当前存储卡是否可用
**/
public static boolean checkSDCardAvailable() {
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
/**
* 获取当前需要查询的文件夹
**/
public static String takePicRootDir(Context context) {
if (checkSDCardAvailable()) {
return Environment.getExternalStorageDirectory() + File.separator + "ic_launch.png";
} else {
return context.getFilesDir().getAbsolutePath() + File.separator + "ic_launch.png";
}
}
public static String takePicRootDir1(Context context) {
if (checkSDCardAvailable()) {
return Environment.getExternalStorageDirectory() + File.separator + "ewm.png";
} else {
return context.getFilesDir().getAbsolutePath() + File.separator + "ewm.png";
}
}
public static void showShareImage(Context context){
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle("");
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl("");
// text是分享文本,所有平台都需要这个字段
oks.setText("");
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
// oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
Resources res = context.getResources();
Bitmap bmp = BitmapFactory.decodeResource(res, R.mipmap.common_ewm);
bitmapPath = takePicRootDir1(context);
saveBitmap(bmp);
oks.setImagePath(bitmapPath);
oks.setUrl("");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite("test");
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("");
// 启动分享GUI
oks.show(context);
}
}
如有错误或者不足,欢迎指出