Step 1 申请微信应用
进入:https://open.weixin.qq.com/ 交300软妹币,等通过。
填写几个重要信息
1.应用签名
2.包名
3.应用名字,重要事情说三遍,由于测试的心里,应用名没管它.其它都对,一直报ignore wechat app signature validation,吐血了,最后还好发现了,
不一样试试改成申请的应用名字.终于好了.
Step 2配制文件与lib
2.1.配制com.test是你APP包名
<activity
android:name="com.test.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sdksample" />
</intent-filter>
</activity>
2.2导入libammsdk包
Step 3调用的代码
3.1发起请求的代码
if(api==null){
api=WXAPIFactory.createWXAPI(WelcomeActivity.this, APP_ID, false);
api.registerApp(APP_ID);
}
if (!api.isWXAppInstalled()) {
//提醒用户没有按照微信
Toast.makeText(WelcomeActivity.this, "没有安装微信,请先安装微信!", Toast.LENGTH_SHORT).show();
return;
}
SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wechat_sdk_demo_test";
api.sendReq(req);
3.2接收微信APP返回的用户授权信息
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.flash_activity);
if(api==null){
//wx30a9402cd2a87cf3
api=WXAPIFactory.createWXAPI(this, APP_ID, false);
api.registerApp(APP_ID);
}
api.handleIntent(getIntent(), this);
handleIntent(getIntent());
}
// 微信发送请求到第三方应用时,会回调到该方法
@Override
public void onReq(BaseReq req) {
switch (req.getType()) {
case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
// goToGetMsg();
break;
case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
// goToShowMsg((ShowMessageFromWX.Req) req);
break;
default:
break;
}
}
// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@Override
public void onResp(BaseResp resp) {
// int result = 0;
String result="";
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = "errcode_success";
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = "errcode_cancel";
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = "errcode_deny";
break;
default:
result = "errcode_unknown";
break;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private void handleIntent(Intent intent) {
SendAuth.Resp resp = new SendAuth.Resp(intent.getExtras());
if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
//用户同意
}
}
}