微信图片选择分享完整demo:
1.调用微信官方api进行分享;
2.调用系统api进行微信分享;
3.支持分享到好友,群,朋友圈;
提供:
APP_ID (自己申请的,仅供测试使用,不作任何商业用途)
public static final String APP_ID = "wx2610542ce8ceee9a";
签名文件:
keyAlias 'ppshare'
keyPassword '111111'
注意:
1.要获得微信分享的回调必须在报名下的wxapi包中创建WXEntryActivity(Activity),并实现IWXAPIEventHandler接口进行回调,menifest中声明 android:exported=”true”
如下路径:
com.ppshare.ppshare.wxapi.WXEntryActivity
2.必须对apk进行签名;
3.包名要与申请appid时填写的一致;
以下提供实现核心代码仅供参考:
/**
* @author wangjian
*/
public class WXEntryActivity extends Activity implements AdapterView.OnItemClickListener, IWXAPIEventHandler {
public static final int REQ_CAMERA = 2;
private static final int THUMB_SIZE = 150;
public GridView mImageGv;
private CheckBox isTimelineCb;
private EditText mTextEt;
// 用于图片选择模块
public List<FileItem> mFiles;
public FileItem mEmptyFile = new FileItem("");
public ImageAdapter mAdapter;
protected int mMaxPhotos = 10;
public List<FileItem> mDelList = new ArrayList<>();
// IWXAPI 是第三方app和微信通信的openapi接口
private IWXAPI api;
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send);
// 通过WXAPIFactory工厂,获取IWXAPI的实例
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false);
isTimelineCb = (CheckBox) findViewById(R.id.is_timeline_cb);
mTextEt = (EditText) findViewById(R.id.et_text);
mImageGv = (GridView) findViewById(R.id.gv_image);
if (mImageGv != null) {
mImageGv.setOnItemClickListener(this);
}
if (mImageGv != null) {
mAdapter = new ImageAdapter();
mAdapter.setDataList(getFiles());
mImageGv.setAdapter(mAdapter);
}
// 注册微信分享回调
api.handleIntent(getIntent(), this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (parent instanceof GridView) {
if (position < mAdapter.getCount() - 1) {
FileItem item = mAdapter.getItem(position);
if (!TextUtils.isEmpty(item.id) && !mDelList.contains(item)) {
mDelList.add(item);
}
getFiles().remove(position);
onImageFileChanged();
}
else {
pickPicture(mMaxPhotos - getFiles().size());
}
}
}
/**
* 图片选择
*
* @param max 最大选择数,可自定义
*/
protected void pickPicture(int max) {