android 微信 sdk api調(diào)用不成功解決方案
最近一直在調(diào)用微信的API,卻發(fā)現(xiàn)一直調(diào)用不成功,糾結(jié)了好久,各方面找教程,找官方,官方里的文檔也只是寫(xiě)得很模糊,說(shuō)是按三步走。
1、申請(qǐng)App_ID
2、填寫(xiě)包名3、
獲取程序簽名的md5值,
這三步只要你走對(duì)了就能調(diào)通,可是大家都不知道有時(shí)候我們打包的keystore和我們打包的keystore獲取到的程序簽名的md5是不一樣的。我們?cè)谏暾?qǐng)的時(shí)候填的程序簽名值是正式打包的,但我們?cè)趀clipse部署上去的卻是用的我們默認(rèn)的debug.keystore.而這樣導(dǎo)致的后果就是程序簽名不一樣,會(huì)一直調(diào)不通。甚至我們都不知道我們錯(cuò)在哪。
先說(shuō)一下怎么部署微信官網(wǎng)下的demo吧:【下面引用的內(nèi)容為微信官網(wǎng)】
微信對(duì)Android API調(diào)用是需要嚴(yán)格 的三個(gè)驗(yàn)證,只有app_id包名和程序簽名完全對(duì)了的情況下才可以調(diào)得通。
如何運(yùn)行sdkdemo工程
1、解壓sdk demo工程壓縮包,并導(dǎo)入到workspace,如下圖:

2、選擇Eclipse頂部菜單Window->Preferences,在彈出的對(duì)話框中,選擇Android目錄下的Build,如下圖:

指定Custom debugkeystore選項(xiàng)的路徑為sdk demo工程目錄中的debug.keystore文件,如下圖:

并應(yīng)用該配置。
3、運(yùn)行該sdk_sample工程。
好了,按以上三步走,你就能走通微信的DEMO,現(xiàn)在再來(lái)看我們自己的DEMO
1、custom Debugkeystore:換成我們自己的keystore

2、裝上我們的應(yīng)用到手機(jī)端,再去微信官網(wǎng)下載一個(gè)獲取程序簽名md5值的apk輸入包名:

3、去微信后臺(tái)申請(qǐng)我們調(diào)試的應(yīng)用:

接著再寫(xiě)上示例代碼中的代碼:
private Button btn_share;
public static final String WX_APP_ID = "wxc85b9dbef61b3fe4";
private IWXAPI api;
private String text="testssss";
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_share = (Button)findViewById(R.id.btn_share);
api = WXAPIFactory.createWXAPI(this, WX_APP_ID,false);
btn_share.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
api.registerApp(WX_APP_ID);
// 初始化一個(gè)WXTextObject對(duì)象
WXTextObjecttextObj = newWXTextObject();
textObj.text = text;
// 用WXTextObject對(duì)象初始化一個(gè)WXMediaMessage對(duì)象
WXMediaMessagemsg = newWXMediaMessage();
msg.mediaObject = textObj;
// 發(fā)送文本類型的消息時(shí),title字段不起作用
msg.title = "Will be ignored";
msg.description = "sdddd";
// 構(gòu)造一個(gè)Req
SendMessageToWX.Reqreq = newSendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一標(biāo)識(shí)一個(gè)請(qǐng)求
req.message = msg;
//req.scene = SendMessageToWX.Req.WXSceneTimeline ;
// 調(diào)用api接口發(fā)送數(shù)據(jù)到微信
api.sendReq(req);
finish();
}
});
}
private StringbuildTransaction(finalString type) {
return (type == null) ? String.valueOf(System.currentTimeMillis())
:type + System.currentTimeMillis();
}
至此,大功告成。千萬(wàn)別忘記你程序打包用的keysotre再用那個(gè)微信提供的程序打包獲取到簽名和你在eclpise程序部署獲取到的簽名是不一樣的。我們可以再申請(qǐng)一個(gè)正式的應(yīng)用,填寫(xiě)信息可以完全一樣,但是只要改掉

和你的app_id
微信獲取程序簽名工具下載地址:http://xiazai.jb51.net/201211/tools/gen_signature_jb51.rar
不知道大家是否有看通。如果再有疑問(wèn)的話可以加我。希望此文章能幫助到正在用微信API的Android碼農(nóng)們。
相關(guān)文章
Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片
本篇文章主要介紹了Android用RecyclerView實(shí)現(xiàn)動(dòng)態(tài)添加本地圖片,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
解決Android MediaRecorder錄制視頻過(guò)短問(wèn)題
本文主要介紹Android MediaRecorder,在使用MediaRecorder時(shí)經(jīng)常會(huì)遇到視頻錄制太短問(wèn)題,這里提供解決問(wèn)題的實(shí)例代碼以供大家參考2016-07-07
Android實(shí)現(xiàn)TextView顯示HTML加圖片的方法
這篇文章主要介紹了Android實(shí)現(xiàn)TextView顯示HTML加圖片的方法,結(jié)合實(shí)例形式分析了TextView控件顯示網(wǎng)絡(luò)圖片的相關(guān)操作技巧,需要的朋友可以參考下2016-07-07
Android判斷App前臺(tái)運(yùn)行還是后臺(tái)運(yùn)行(運(yùn)行狀態(tài))
這篇文章主要介紹了Android判斷App前臺(tái)運(yùn)行還是后臺(tái)運(yùn)行的相關(guān)資料,需要的朋友可以參考下2016-04-04
Android Studio 在項(xiàng)目中引用第三方j(luò)ar包的方法
本文分步驟給大家介紹了Android Studio 在項(xiàng)目中引用第三方j(luò)ar包的方法,感興趣的朋友跟隨小編一起看看吧2018-09-09
快速關(guān)閉android studio的自動(dòng)保存功能教程
這篇文章主要介紹了快速關(guān)閉android studio的自動(dòng)保存功能教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Android ListView實(shí)現(xiàn)圖文列表顯示
這篇文章主要為大家詳細(xì)介紹了Android ListView實(shí)現(xiàn)圖文列表顯示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

