1.申請你的AppID
請到 開發者應用登記頁面 進行登記,登記並選擇移動應用進行設置后,將獲得AppID,可立即用於開發。但應用登記完成后還需要提交審核,只有審核通過的應用才能正式發布使用。
2.下載微信終端開發工具包
開發工具包主要包含3部分內容:(其中,只有libammsdk.jar是必須的)
- libammsdk.jar(每個第三方應用必須要導入該sdk庫,用於實現與微信的通信)
- API文檔(供開發者查閱使用)
- 界面小工具源碼(封裝了界面表現的工具類,以及一些界面風格)
下載: Android平台開發工具包
3.搭建開發環境
[1] 在Eclipse中建立你的工程。
[2] 在工程中新建一個libs目錄,將開發工具包中libs目錄下的libammsdk.jar復制到該目錄中(如下圖所示,建立了一個名為SDK_Sample 的工程,並把jar包復制到libs目錄下)。
[3] 右鍵單擊工程,選擇Build Path中的Configure Build Path...,選中Libraries這個tab,並通過Add Jars...導入工程libs目錄下的libammsdk.jar文件。(如下圖所示)。
在你需要使用微信終端API的文件中導入相應的類。
import com.tencent.mm.sdk.openapi.WXTextObject;
4.在代碼中使用開發工具包
[1] 注冊到微信
要使你的程序啟動后微信終端能響應你的程序,必須在代碼中向微信終端注冊你的id。(如下圖所示,可以在程序入口Activity的onCreate回調函數處,或其他合適的地方將你的應用id注冊到微信。注冊函數示例如下圖所示。
[2] 發送請求或響應到微信
現在,你的程序要發送請求或發送響應到微信終端,可以通過IWXAPI的 sendReq 和sendResp 兩個方法來實現。
boolean sendReq(BaseReq req);
sendReq是第三方app主動發送消息給微信,發送完成之后會切回到第三方app界面。
boolean sendResp(BaseResp resp);
sendResp是微信向第三方app請求數據,第三方app回應數據之后會切回到微信界面。
sendReq的實現示例,如下圖所示:

需要注意的是,SendMessageToWX.Req的scene成員,如果scene填WXSceneSession,那么消息會發送至微信的會話 內。如果scene填WXSceneTimeline(微信4.2以上支持,如果需要檢查微信版本支持API的情況, 可調用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支持發送朋友圈),那么消息會發送至朋友圈。scene默認值為WXSceneSession。
sendResp的實現與SendReq類似,如下圖所示:

具體要發送的內容由第三方app開發者定義,具體可參考微信開發工具包中的SDK Sample Demo源碼。
[3] 接收微信的請求及返回值
如果你的程序需要接收微信發送的請求,或者接收發送到微信請求的響應結果,需要下面3步操作:
a. 在你的包名相應目錄下新建一個wxapi目錄,並在該wxapi目錄下新增一個WXEntryActivity類,該類繼承自Activity
(例如應用程序的包名為net.sourceforge.simcpux,則新添加的類如下圖所示)
並在manifest文件里面加上exported屬性,設置為true,例如:
b. 實現IWXAPIEventHandler接口,微信發送的請求將回調到onReq方法,發送到微信請求的響應結果將回調到onResp方法
c. 在WXEntryActivity中將接收到的intent及實現了IWXAPIEventHandler接口的對象傳遞給IWXAPI接口的handleIntent方法,示例如下圖:
當微信發送請求到你的應用,將通過IWXAPIEventHandler接口的onReq方法進行回調,類似的,應用請求微信的響應結果將通過onResp回調。
注意
如果需要混淆代碼,為了保證sdk的正常使用,需要在proguard.cfg加上下面兩行配置:
-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}
至此,你已經能使用微信Android開發工具包的API內容了。如果想更詳細了解每個API函數的用法,請查閱 Android 平台參考手冊 或自行下載閱讀微信SDK Sample Demo源碼。