1、build.gradle下添加微信sdk依赖
compile ('com.xyzlf.share:sharesdk:0.0.10') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
2、MainActivity文件夹下创建wxapi文件夹WXEntryActivity类,并配置到manifest里面:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, ManifestUtil.getWeixinKey(this), false);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
}
@Override
public void onResp(BaseResp resp) {
Intent intent = new Intent();
intent.setAction(ShareConstant.ACTION_WEIXIN_CALLBACK);
intent.putExtra(ShareConstant.EXTRA_WEIXIN_RESULT, resp.errCode);
sendBroadcast(intent);
finish();
}
}
<!-- 微信分享注册 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
3、分享工具类,这里注册 微信开放平台 的AppID,即可分享
/**
* 作者:created by meixi
* 邮箱:[email protected]
* 日期:2018/9/20 08
*/
public class ShareUtil {
public static int SHARE_WX_FRIEND = 1;//分享给微信好友
public static int SHARE_WX_CIRCLE = 2;//分享到朋友圈
public static int SHARE_WEI_BO = 3;
public static int SHARE_QQ = 4;
private static final int THUMB_SIZE = 150;
private static final String strDreamUrl = "http://api.zhenhuaonline.com/home/share/dream?id=";
private static final String strZhenHuaUrl = "http://www.zhenhuaonline.com/app";
private static ShareUtil INSTANCE;
/**
* 微信API
*/
private static IWXAPI apiWX;
/**
* 微博分享的接口实例
*/
// private static IWeiboShareAPI mWeiboShareAPI;
private static int nDreamID;
/**
* qq
*/
private static Tencent mTencent;
private static Activity activity;
private int nShareType;
//标题
private String strTitle;
//详情
private String strDetail;
//图片地址URL
private String strImageUrl;
public static ShareUtil getInstance(Activity activity, int nDreamID) {
Log.v("lg","分享。。。。。ShareUtil getInstance(Activity activity, int nDreamID) ");
if (INSTANCE == null)
INSTANCE = new ShareUtil();
ShareUtil.activity = activity;
ShareUtil.nDreamID = nDreamID;
init();
return INSTANCE;
}
public static ShareUtil getMap(Activity activity,Bitmap bitmap){
return INSTANCE;
}
private static void init() {
apiWX = WXAPIFactory.createWXAPI(activity, "wxe6be244abe90a087");//换为你AppID即可
Log.i("lgq","....7777777777777..="+apiWX);
// apiWX.registerApp("wxe6be244abe90a087");
// 创建微博 SDK 接口实例
// mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(activity, ThirdKey.WB_APP_KEY);
// 注册到新浪微博
// mWeiboShareAPI.registerApp();
// mTencent = Tencent.createInstance(ThirdKey.QQ_APP_ID, activity);
}
/**
* 获取微信API
*/
public static IWXAPI getApiWX() {
return apiWX;
}
/**
* 获取微博API
*/
// public static IWeiboShareAPI getmWeiboShareAPI() {
// return mWeiboShareAPI;
// }
/**
* 设置标题
*/
public ShareUtil setTitle(String strTitle) {
INSTANCE.strTitle = strTitle;
return INSTANCE;
}
/**
* 设置内容
*/
public ShareUtil setDetail(String strDetail) {
INSTANCE.strDetail = strDetail;
return INSTANCE;
}
/**
* 设置图片地址
*/
public ShareUtil setImageUrl(String strImageUrl) {
INSTANCE.strImageUrl = strImageUrl;
return INSTANCE;
}
/**
* 设置分享类型
*/
public ShareUtil setShareType(int nShareType) {
INSTANCE.nShareType = nShareType;
return INSTANCE;
}
public void share(More_LoadDialog loadingDialog) {
Log.i("lg","分享。。。。。ShareUtil++++share(LoadingDialog loadingDialog)");
if (nShareType == SHARE_WX_CIRCLE || nShareType == SHARE_WX_FRIEND) {
shareWX(loadingDialog);
} else if (nShareType == SHARE_WEI_BO) {
// shareWB(loadingDialog);
} else if (nShareType == SHARE_QQ) {
// shareQQ(loadingDialog);
}
}
/**
* 微信分享
*/
private void shareWX(More_LoadDialog loadingDialog) {
if (apiWX.isWXAppInstalled()) {
loadingDialog.show();
Log.i("lg","微信分享。。。。。111111111");
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
WXMediaMessage msg = new WXMediaMessage(new WXWebpageObject(nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID)));//分享链接
msg.description = nShareType == SHARE_WX_CIRCLE ? activity.getString(R.string.app_name) : strDetail;//分享描述
msg.title = nShareType == SHARE_WX_CIRCLE ? strDetail : activity.getString(R.string.app_name);//分享标题,(应用名称)
msg.setThumbImage(BitmapFactory.decodeResource(activity.getResources(), R.mipmap.em_dx_checkbox_on));//分享图片
Log.i("lg", "微信分享。。。。。222222221");
req.transaction = buildTransaction(activity.getPackageName()); // transaction字段用于唯一标识一个请求
req.message = msg;
req.scene = nShareType == SHARE_WX_CIRCLE ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
Log.i("lg","微信分享。。。。。3333333");
apiWX.sendReq(req);
} else{
// ToastUtil.showToastShort(R.string.error_third_no_wechat);
}
}
/**
* 分享到微博
*/
// private void shareWB(LoadingDialog loadingDialog) {
// if (mWeiboShareAPI.isWeiboAppInstalled() && mWeiboShareAPI.getWeiboAppSupportAPI() >= 10351) {
// loadingDialog.show();
//
// WeiboMultiMessage weiboMessage = new WeiboMultiMessage();
//
// TextObject textObject = new TextObject();
// textObject.text = strDetail + (nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID));
//
// weiboMessage.textObject = textObject;
// SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
// request.transaction = String.valueOf(System.currentTimeMillis());
// request.multiMessage = weiboMessage;
// // 3. 发送请求消息到微博,唤起微博分享界面
// mWeiboShareAPI.sendRequest(activity, request);
// } else
// ToastUtil.showToastShort(R.string.error_third_no_weibo);
// }
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
/**
* QQ分享
*/
// private void shareQQ(More_LoadDialog loadingDialog) {
// Log.v("lg","分享。。。。。ShareUtil++++shareQQ(LoadingDialog loadingDialog)");
// final Bundle params = new Bundle();
// params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
// params.putString(QQShare.SHARE_TO_QQ_TITLE, activity.getString(R.string.app_name));
// params.putString(QQShare.SHARE_TO_QQ_SUMMARY, strDetail);
// params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID));
// params.putString(QQShare.SHARE_TO_QQ_APP_NAME, activity.getString(R.string.app_name));
//
// //监听
// IUiListener uiListener = new IUiListener() {
// @Override
// public void onComplete(Object o) {
// ToastUtil.showToastShort(R.string.errcode_success);
// }
//
// @Override
// public void onError(UiError uiError) {
// ToastUtil.showToastShort(R.string.errcode_deny);
// }
//
// @Override
// public void onCancel() {
// ToastUtil.showToastShort(R.string.errcode_cancel);
// }
// };
//
// if (mTencent.isSupportSSOLogin(activity)) {
// loadingDialog.show();
// mTencent.shareToQQ(activity, params, uiListener);
// } else
// ToastUtil.showToastShort(R.string.error_third_no_qq);
// }
/**
* 系统分享
*
* @param mContext
* @param strDetail
*/
public static void systemShare(Context mContext, String strDetail) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, strDetail + "\n" + strZhenHuaUrl);
sendIntent.setType("text/plain");
mContext.startActivity(sendIntent);
}
}
4、起调微信分享
String strTinyCreate = "分享一个微创业\n" ;
ShareUtil.getInstance(AddwcrrActivity.this, 0).setDetail(strTinyCreate).setShareType(ShareUtil.SHARE_WX_FRIEND).share(more_loadDialog);
5、说明:
More_LoadDialog是个缓冲动画。可要可不要。可用你的缓冲动画