这次主要讲解带你一步一步开发微信的分享文本,音频,视频,链接,表情,图片功能,以及给出一些关于网上朋友们提出的微信分享闪退,微信分享失败等问题的解决办法。
第一实现调用打开微信客户端:
首先到微信开放平台(https://open.weixin.qq.com )上注册一个账号,然后在上面创建一个Android应用,并填写好配置信息
在填写配置信息的时候应注意:
1 在填写应用签名时,需要到微信平台上去下载一个签名包(apk)(https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=f1f7a64c1e41365231e943cb0b11ffcc83700f4b&lang=zh_CN ),安装在手机上,然后在里面输入包名(例如:com.XXX.weichat,
注意此时的包名一定要和自己Android项目包名一样)
然后就会生成一个字符串,这就是应用签名,然后提交,等待审核
2 如果审核过了的话那就我们应该可以获得appid,APPKEY
3 接下来我们就可以开发我们的Android程序
新建一个Android工程,然后我们工程目录下libs导入一个libammsdk.jar并且添加到path中去
4 代码实现:
首先,定义一个字符串用于接收注册后获得的appid,然后再去定义一个IWXAPI 类型的API对象
然后去创建这个对象,并把appid作为参数传入,再用定义好的API对象去注册微信,并传入参数appid
注册完后。可以通过API对象去调用openWXApp()打开微信客户端
public static String App_Id="wx6c7d2f78e58ef49a";//这是APP_ID
private Button btn;
private IWXAPI api;//定义一个IWXAPI类型的API变量
private CheckBox mShareFriends;
private Button sendText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button) findViewById(R.id.button1);
sendText=(Button) findViewById(R.id.button2);
mShareFriends=(CheckBox) findViewById(R.id.checkBox1);
api=WXAPIFactory.createWXAPI(this, App_Id);//创建一个API
api.registerApp(App_Id);//将App_id注册到微信中
btn.setOnClickListener(this);
sendText.setOnClickListener(this);
}
private String buliderTransaction(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.button1://打开微信客户端
boolean flag=api.openWXApp();//通过api对象调用打开微信客户端,如果能打开就返回一个true,否则返回false;
if (flag) {
Toast.makeText(this, "微信打开成功", Toast.LENGTH_LONG).show();//注意:Toast控件对象不能再内部类事件监听方法使用,要把this改为MainActivity.this即可
}else{
Toast.makeText(this, "微信打开失败", Toast.LENGTH_LONG).show();
}
运行结果:
第二实现分享文本:
case R.id.button2://分享文本
//动态的创建一个EditText控件,用来分享文本内容
final EditText editText=new EditText(this);
//动态的创建一个线性布局,并且同时设置布局的高度和宽度
editText.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) );
editText.setText("默认的分享文本");
//用一个Dialog alert实现弹出一个EditText
final AlertDialog.Builder builder=new AlertDialog.Builder(this);//动态创建一个UI控件用final修饰
//设置弹出的Dialog的图标
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setTitle("分享文本");//设置标题
//将EditText控件与对话框绑定
builder.setView(editText);
builder.setMessage("请输入分享的内容...");
//在对话框再创建两个按钮一个确认发送,一个是去取消发送按钮
builder.setPositiveButton("分享", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//首先获得EditText中的文本
String text=editText.getText().toString();
if (text==null||text.length()==0) {//如果文本为空直接结束方法
return ;
}
//第一步:创建一个用于封装接收等待分享的文本的WXTextObject对象
WXTextObject textObject=new WXTextObject();
textObject.text=text;
//第二步:创建WXMediaMessage对象,用于Android客户端向微信传输文本内容
WXMediaMessage msg=new WXMediaMessage();
msg.mediaObject=textObject;
msg.description=text;//设置描述
//第三步:创