注意:分享图片有限制,大小在32k之内,需要先压缩后分享
下载资源:​​​https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&lang=zh_CN​​​
对照开发文档拷贝SendToWXActivity类中的内容完成相应的诉求
“`
req.scene = SendMessageToWX.Req.WXSceneSession;//分享微信好友
req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到微信朋友圈

已实现分享到好友,朋友圈的代码

package com.example.sj.ui.fragment;

import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.HorizontalScrollView;
import android.widget.ListView;
import android.widget.Toast;

import com.alibaba.fastjson.JSON;
import com.example.sj.Constant;
import com.example.sj.base.YPBaseApplication;
import com.example.sj.base.YPBaseFragmentNoTitle;
import com.example.sj.entity.FileListEntity;
import com.example.sj.ui.activity.FileDetailActivity;
import com.example.sj.ui.adapter.ItemLvFileFragAdapter;
import com.example.sj.ui.views.FileNaviBar;
import com.example.sj.utils.SharePLogin;
import com.example.sj.yun16.R;
import com.tencent.mm.sdk.modelmsg.SendMessageToWX;
import com.tencent.mm.sdk.modelmsg.WXMediaMessage;
import com.tencent.mm.sdk.modelmsg.WXTextObject;
import com.tencent.mm.sdk.openapi.IWXAPI;

import org.xutils.common.Callback;
import org.xutils.common.util.LogUtil;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cn.bingoogolapple.refreshlayout.BGANormalRefreshViewHolder;
import cn.bingoogolapple.refreshlayout.BGARefreshLayout;
import cn.bingoogolapple.refreshlayout.BGARefreshViewHolder;

/**
* A simple {@link Fragment} subclass.
*/
public class FileFragment extends YPBaseFragmentNoTitle implements BGARefreshLayout.BGARefreshLayoutDelegate, View.OnClickListener {

private BGARefreshLayout mRefreshLayout;
private ListView mLvFragFile;
private RequestParams mRequestParamsRefresh;
private RequestParams mRequestParamsLoadMore;
private SharePLogin mSharePLogin;
private RefreshCallBack mRefreshCallBack;
private ItemLvFileFragAdapter mItemLvFileFragAdapter;
private LoadMoreCallBack mLoadMoreCallBack;
private boolean mIsRefreshing, mIsLoadingMore;
private Callback.Cancelable mCancelableReresh, mCancelableLoadMore;
private List mDataEntities;
private Map datas = new HashMap();
private List mPathEntities;
private HorizontalScrollView mScrollViewFileNavi;
private FrameLayout mContainerFileNavi;
private FileNaviBar mFileNaviBar;
private YPBaseApplication mBaseApplication;
private FrameLayout mLayoutUploadNaviBottomFragFile;
private FrameLayout mLayoutShareNaviBottomFragFile;
private FrameLayout mLayoutDownloadNaviBottomFragFile;
private FrameLayout mLayoutMoreNaviBottomFragFile;
//------------------------要删
private IWXAPI api;
private Button mBtGo1;
private Button mBtGo2;
private Button mBtGo3;
private Button mBtGo4;
//------------------------要删



@Override
public int setRootView() {
return R.layout.fragment_file;
}

@Override
public void initViews() {
mBaseApplication= (YPBaseApplication) mActivity.getApplication();
mScrollViewFileNavi = (HorizontalScrollView) mRootView.findViewById(R.id.scrollView_file_navi);
mContainerFileNavi = (FrameLayout) mRootView.findViewById(R.id.container_file_navi);
mRefreshLayout = (BGARefreshLayout) mRootView.findViewById(R.id.layout_refresh_frag_file);
mLvFragFile = (ListView) mRootView.findViewById(R.id.lv_frag_file);
// 为BGARefreshLayout设置代理
mRefreshLayout.setDelegate(this);
// 设置下拉刷新和上拉加载更多的风格 参数1:应用程序上下文,参数2:是否具有上拉加载更多功能
BGARefreshViewHolder refreshViewHolder = new BGANormalRefreshViewHolder(mActivity, true);
// 设置下拉刷新和上拉加载更多的风格
mRefreshLayout.setRefreshViewHolder(refreshViewHolder);
mLvFragFile.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
FileListEntity.DataEntity dataEntity = mDataEntities.get(position);
if (TextUtils.isEmpty(dataEntity.getCid())) {
datas.clear();
datas.put("entity", dataEntity);
startActviityWithAnim(FileDetailActivity.class, datas);
} else {
changeCid(dataEntity.getCid());
doRefresh();
}
}
});


mLayoutUploadNaviBottomFragFile = (FrameLayout) mRootView.findViewById(R.id.layout_upload_navi_bottom_frag_file);
mLayoutShareNaviBottomFragFile = (FrameLayout) mRootView.findViewById(R.id.layout_share_navi_bottom_frag_file);
mLayoutDownloadNaviBottomFragFile = (FrameLayout) mRootView.findViewById(R.id.layout_download_navi_bottom_frag_file);
mLayoutMoreNaviBottomFragFile = (FrameLayout) mRootView.findViewById(R.id.layout_more_navi_bottom_frag_file);
//------------------------要删
api=mBaseApplication.api;
mBtGo1 = (Button) mRootView.findViewById(R.id.bt_go1);
mBtGo2 = (Button) mRootView.findViewById(R.id.bt_go2);
mBtGo3 = (Button) mRootView.findViewById(R.id.bt_go3);
mBtGo4 = (Button) mRootView.findViewById(R.id.bt_go4);
mBtGo1.setOnClickListener(this);
mBtGo2.setOnClickListener(this);
mBtGo3.setOnClickListener(this);
mBtGo4.setOnClickListener(this);
//------------------------要删
}
//------------------------要删
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt_go1:
//分享一个文本到好友
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text = "呵呵哒测试文本测试文本雷好雷好,辛苦辛苦";

// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
// 发送文本类型的消息时,title字段不起作用
// msg.title = "Will be ignored";
msg.description = "描述描述";

// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
req.message = msg;

// req.scene = SendMessageToWX.Req.WXSceneSession;//分享微信好友
req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到微信朋友圈
//微信分享的图片不能大于32k,要先进行压缩再分享

            // 调用api接口发送数据到微信
api.sendReq(req);
break;
case R.id.bt_go2:
break;
case R.id.bt_go3:
break;
case R.id.bt_go4:
break;
}
}

//------------------------要删
@Override
public void initDatas() {
mSharePLogin = new SharePLogin(mActivity);
initRequestParamsRefresh();
initRequestParamsLoadMore();
mRefreshCallBack = new RefreshCallBack();
mLoadMoreCallBack = new LoadMoreCallBack();
doRefresh();
}

@Override
public void onBGARefreshLayoutBeginRefreshing(final BGARefreshLayout refreshLayout) {
mCancelableReresh = x.http().get(mRequestParamsRefresh, mRefreshCallBack);
mIsRefreshing = true;
}

@Override
public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
changeReqLoadmoreOffset();
mCancelableLoadMore = x.http().get(mRequestParamsLoadMore, mLoadMoreCallBack);
mIsLoadingMore = true;
return true;
}

private void initRequestParamsRefresh() {

mRequestParamsRefresh = new RequestParams(Constant.FILE_LIST_URL);
mRequestParamsRefresh.setUseCookie(true);
mRequestParamsRefresh.setCancelFast(true);
mRequestParamsRefresh.setHeader("Cookie", "fuid=" + mSharePLogin.getData("fuid") + "; token=" + mSharePLogin.getData("token"));
mRequestParamsRefresh.addParameter("ct", "list");
mRequestParamsRefresh.addParameter("aid", "1");
mRequestParamsRefresh.addParameter("cid", "0");
mRequestParamsRefresh.addParameter("o", "user_ptime");
mRequestParamsRefresh.addParameter("aes", "0");
mRequestParamsRefresh.addParameter("offset", "0");
mRequestParamsRefresh.addParameter("limit", "30");
}

private void initRequestParamsLoadMore() {

// HttpURLConnection htt=null;
// htt.addRequestProperty(“Cookie”,”“);

    mRequestParamsLoadMore = new RequestParams(Constant.FILE_LIST_URL);
mRequestParamsLoadMore.setUseCookie(true);
mRequestParamsLoadMore.setCancelFast(true);
mRequestParamsLoadMore.setHeader("Cookie", "fuid=" + mSharePLogin.getData("fuid") + "; token=" + mSharePLogin.getData("token"));
mRequestParamsLoadMore.addParameter("ct", "list");
mRequestParamsLoadMore.addParameter("aid", "1");
mRequestParamsLoadMore.addParameter("cid", "0");
mRequestParamsLoadMore.addParameter("o", "user_ptime");
mRequestParamsLoadMore.addParameter("aes", "0");
mRequestParamsLoadMore.addParameter("offset", "0");
mRequestParamsLoadMore.addParameter("limit", "30");

}

private void changeCid(String cid) {
mRequestParamsLoadMore.removeParameter("cid");
mRequestParamsLoadMore.addParameter("cid", cid);
mRequestParamsRefresh.removeParameter("cid");
mRequestParamsRefresh.addParameter("cid", cid);
}

private void changeReqLoadmoreOffset() {

mRequestParamsLoadMore.removeParameter("offset");
mRequestParamsLoadMore.addParameter("offset", mLvFragFile.getCount());
}


private void doRefresh() {
mRefreshLayout.beginRefreshing();
}



//加载更多的回调
private class LoadMoreCallBack implements Callback.CommonCallback {

@Override
public void onSuccess(String result) {
FileListEntity fileListEntity = JSON.parseObject(result, FileListEntity.class);
mPathEntities = fileListEntity.getPath();
if (fileListEntity.getCount() <= mLvFragFile.getCount()) {
Toast.makeText(mActivity, " 没有更多了", Toast.LENGTH_SHORT).show();
return;
}
if (mDataEntities == null) {
mDataEntities = new ArrayList<>();

}
mDataEntities.addAll(fileListEntity.getData());
if (mItemLvFileFragAdapter == null) {
mItemLvFileFragAdapter = new ItemLvFileFragAdapter(mActivity, mDataEntities);
mLvFragFile.setAdapter(mItemLvFileFragAdapter);
} else {
mItemLvFileFragAdapter.setEntities(mDataEntities);
}
}

@Override
public void onError(Throwable ex, boolean isOnCallback) {
Toast.makeText(mActivity, "网络错误", Toast.LENGTH_SHORT).show();
}

@Override
public void onCancelled(CancelledException cex) {
mIsLoadingMore = false;
}

@Override
public void onFinished() {
mRefreshLayout.endLoadingMore();
mIsLoadingMore = false;
}
}

//刷新的回调
private class RefreshCallBack implements Callback.CommonCallback {

@Override
public void onSuccess(String result) {

FileListEntity fileListEntity = JSON.parseObject(result, FileListEntity.class);
mPathEntities = fileListEntity.getPath();
if (mFileNaviBar==null){
mFileNaviBar=new FileNaviBar(mScrollViewFileNavi,mContainerFileNavi,mActivity,mPathEntities);
mFileNaviBar.setOnItemClickListener(new FileNaviBar.OnItemClickListener() {
@Override
public void onClick(FileListEntity.PathEntity pathEntity) {
changeCid(pathEntity.getCid()+"");
doRefresh();

}
});
}else {
mFileNaviBar.notifyChange(mPathEntities);

}

LogUtil.e(mPathEntities.toString());
mDataEntities = fileListEntity.getData();
if (mItemLvFileFragAdapter == null) {
mItemLvFileFragAdapter = new ItemLvFileFragAdapter(mActivity, mDataEntities);
mLvFragFile.setAdapter(mItemLvFileFragAdapter);
} else {
mItemLvFileFragAdapter.setEntities(mDataEntities);
}

}

@Override
public void onError(Throwable ex, boolean isOnCallback) {
Toast.makeText(mActivity, "网络错误", Toast.LENGTH_SHORT).show();
}

@Override
public void onCancelled(CancelledException cex) {
mIsRefreshing = false;
}

@Override
public void onFinished() {
mRefreshLayout.endRefreshing();
mIsRefreshing = false;
}
}

//true 要处理 back false不响应back
public boolean onBackPressed() {
if (mIsRefreshing) {

mRefreshLayout.endRefreshing();
mCancelableReresh.cancel();
return true;
}

if (mIsLoadingMore) {
mRefreshLayout.endLoadingMore();
mCancelableLoadMore.cancel();
return true;
}

//能回到上一级,则回到上一级
if (goBack()) {
return true;
}
return false;
}

private boolean goBack() {
if (mPathEntities == null || mPathEntities.size() <= 1) {
return false;
}

FileListEntity.PathEntity pathEntity= mPathEntities.get(mPathEntities.size()-2);
changeCid(pathEntity.getCid()+"");
doRefresh();
return true;
}

}

“`