版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、游戲基地Android游戲SDK使用說(shuō)明中國(guó)移動(dòng)游戲基地2013年10月31日推薦精選文件狀態(tài): 草稿 正式發(fā)布 正在修改文件標(biāo)識(shí):當(dāng)前版本:V2.1.4作者:金懷香完成日期:2013-10-31版本歷史版本/狀態(tài)作者參與者起止日期備注2.1.4金懷香王安福2013-10-31創(chuàng)建支持混合支付推薦精選目錄1引言41.1編寫(xiě)目的41.2術(shù)語(yǔ)及縮略詞41.3適用對(duì)象及范圍42SDK概述52.1 總體描述52.1.1概述52.1.2 SDK使用準(zhǔn)備52.2游戲初始化接口62.2.1游戲計(jì)費(fèi)信息配置文件62.2.2應(yīng)用程序加載接口72.2.3游戲初始化接口72.2.4設(shè)置登錄透?jìng)鲄?shù)接口82.2.5游
2、戲登錄結(jié)果回調(diào)接口82.3 游戲啟動(dòng)畫(huà)面102.4 游戲退出接口102.5 更多游戲接口112.6游戲計(jì)費(fèi)接口112.6.1計(jì)費(fèi)流程112.6.2 計(jì)費(fèi)接口122.7網(wǎng)游登錄同步接口142.8計(jì)費(fèi)同步接口152.9 獲取游戲背景音樂(lè)開(kāi)關(guān)163 Unity3D引擎游戲的開(kāi)發(fā)163.1 復(fù)制資源文件163.2 編輯AndroidManifest.xml文件163.3 為游戲增加Unity3D腳本164常見(jiàn)問(wèn)題:18推薦精選1 引言1.1 編寫(xiě)目的游戲基地Android游戲SDK使用說(shuō)明及其SDK,是為了簡(jiǎn)化合作伙伴對(duì)游戲計(jì)費(fèi)等功能的開(kāi)發(fā)流程。1.2 術(shù)語(yǔ)及縮略詞試玩轉(zhuǎn)激活:游戲在啟動(dòng)后,允許用戶試
3、用一段時(shí)間或指定關(guān)卡后,再觸發(fā)計(jì)費(fèi)的業(yè)務(wù)。計(jì)費(fèi)點(diǎn):游戲在平臺(tái)申報(bào)的激活點(diǎn)信息,包含:計(jì)費(fèi)點(diǎn)名稱、價(jià)格、及唯一標(biāo)識(shí)代碼等信息強(qiáng)制計(jì)費(fèi)點(diǎn):即一次性付費(fèi)的計(jì)費(fèi)點(diǎn),通常也是必須要付費(fèi)的計(jì)費(fèi)點(diǎn),否則用戶無(wú)法繼續(xù)使用游戲或者進(jìn)入下一關(guān)卡。非強(qiáng)制計(jì)費(fèi)點(diǎn):即可重復(fù)購(gòu)買(mǎi)的計(jì)費(fèi)點(diǎn),通常是游戲中道具或金幣,用戶可以多次購(gòu)買(mǎi)的計(jì)費(fèi)點(diǎn)。1.3 適用對(duì)象及范圍適用于策劃人員、系統(tǒng)設(shè)計(jì)人員、開(kāi)發(fā)工程師和測(cè)試工程師推薦精選2 SDK概述2.1 總體描述2.1.1概述中國(guó)移動(dòng)Android游戲SDK開(kāi)發(fā)包提供給任何可信任的第三方合作伙伴,可信任的第三方合作伙伴通過(guò)游戲基地提供的開(kāi)發(fā)規(guī)范實(shí)現(xiàn)用戶在Android游戲中的計(jì)費(fèi)等功能
4、。SDK開(kāi)發(fā)包已經(jīng)包含開(kāi)發(fā)規(guī)范所涉及的游戲標(biāo)準(zhǔn)開(kāi)發(fā)要求的實(shí)現(xiàn),包括游戲LOGO制作要求,游戲開(kāi)始畫(huà)面,游戲計(jì)費(fèi)交互模塊,網(wǎng)絡(luò)(CMNET/CMWAP/WIFI)檢測(cè),以及游戲退出確認(rèn)畫(huà)面等等。合作伙伴只需將SDK集成到游戲中,并調(diào)用相應(yīng)的接口函數(shù)即可完成對(duì)開(kāi)發(fā)規(guī)范所涉及的游戲標(biāo)準(zhǔn)要求的實(shí)現(xiàn)。2.1.2 SDK使用準(zhǔn)備SDK開(kāi)發(fā)包包括以下幾個(gè)文件與目錄:1. SDK開(kāi)發(fā)資源包: SDK目錄中包含SDK的資源文件,請(qǐng)復(fù)制SDK目錄中的所有目錄與文件,并拷貝至各自的游戲工程中),如下:1)拷貝APIA)拷貝Native API將SDK/libs目錄中的文件全部拷貝到游戲libs下。B)拷貝JAVA
5、API將SDK/runtime目錄文件, 直接復(fù)制到游戲根目錄下, 切勿將runtime下面的jar文件放入libs下面編譯,否則會(huì)報(bào)編譯錯(cuò)誤,例如:bad range。2)拷貝SDK資源A)將SDK/res文件夾中的內(nèi)容拷貝至游戲工程目錄中。B)將SDK/assets文件夾中的所有文件拷貝至游戲相同的工程目錄中,不能刪除其中的任何文件, 否則導(dǎo)致非正常運(yùn)行。3)替換游戲廠商logo或游戲logo將assets/OpeningAnimation目錄下的兩個(gè)圖片:g_logo_sp.png,g_logo_cp.png替換成合作伙伴自己的logo;當(dāng)SP和CP是同一廠商時(shí),即該兩個(gè)圖片一樣時(shí),請(qǐng)將
6、其中一個(gè)Logo圖片換成游戲Logo,避免重復(fù)展示。另外:合作伙伴提供的logo大小不超過(guò)118x118像素,寬度和高度都不能超過(guò)。4)添加SDK提供的Activity引用推薦精選將SDKAndroidManifest.xml.activity.txt中的文本Copy到游戲的AndroidManifest.xml中Activity的橫豎屏配置(android:screenOrientation),最好設(shè)置成游戲主界面的橫豎屏設(shè)置。 5)添加SDK需要的use-permision將SDKAndroidManifest.xml.permision.txt中的文本Copy到游戲的AndroidMan
7、ifest.xml注意:不要重復(fù)添加use-permision項(xiàng)。6)為游戲主入口添加中國(guó)移動(dòng)游戲基地標(biāo)識(shí)(Intent-Filter)為游戲主入口Activity添加中國(guó)移動(dòng)游戲基地標(biāo)識(shí),如下:2. 示例工程(Sample目錄中為游戲計(jì)費(fèi)實(shí)現(xiàn)的實(shí)例,詳細(xì)的Sample程序源文件在Sample/GameDemo/文件夾下),請(qǐng)不要直接拷貝Sample的示例代碼,根據(jù)游戲時(shí)間情況,處理接口調(diào)用邏輯。3. 開(kāi)發(fā)文檔(游戲基地Android游戲開(kāi)發(fā)SDK使用說(shuō)明.doc)2.2游戲初始化接口2.2.1游戲計(jì)費(fèi)信息配置文件在APK包的assets目錄下包含登錄及計(jì)費(fèi)相關(guān)數(shù)據(jù)文件,文件內(nèi)容均已加密。SD
8、K提供了測(cè)試使用的Charge.xml、ConsumeCodeInfo.xml。游戲開(kāi)發(fā)者需要確認(rèn)這兩個(gè)文件已在游戲的assets目錄下存在,否則編譯不通過(guò)。待游戲提交至移動(dòng)平臺(tái)后,動(dòng)態(tài)替換該文件內(nèi)容(替換成游戲?qū)嶋H業(yè)務(wù)及計(jì)費(fèi)信息)。注意:該兩個(gè)文件是計(jì)費(fèi)的核心數(shù)據(jù),請(qǐng)勿擅自修改其內(nèi)容,否則計(jì)費(fèi)失敗。另:請(qǐng)將SDKassetsConfig.xml也一并復(fù)制到游戲assets目錄,該文件與計(jì)費(fèi)無(wú)關(guān),是SDK的版本標(biāo)識(shí),但是必須包含。針對(duì)客戶端網(wǎng)游業(yè)務(wù),游戲開(kāi)發(fā)者在集成SDK過(guò)程中,無(wú)法直接測(cè)試真實(shí)的登錄與購(gòu)買(mǎi)道具流程;因?yàn)镾DK提供的Charge.xml及ConsumeCodeInfo.xml信
9、息是測(cè)試數(shù)據(jù)。若要完成登錄及購(gòu)買(mǎi)道具測(cè)試,請(qǐng)CP將集成SDK的游戲提交至游戲管理平臺(tái),并點(diǎn)擊同步自測(cè),可以從平臺(tái)上下載含真實(shí)業(yè)務(wù)信息的包體內(nèi)容,并用指定的測(cè)試號(hào)碼(同步自測(cè)時(shí)給出的號(hào)碼)完成登錄及購(gòu)買(mǎi)道具測(cè)試。推薦精選2.2.2應(yīng)用程序加載接口游戲開(kāi)發(fā)者在集成SDK,務(wù)必先自定義全局Application。Application里面代碼必須包含:System.loadLibrary(megjb);示例代碼如下:public class CmgameApplication extends Application public void onCreate() System.loadLibrary(
10、megjb); AndroidManifest.xml中配置:2.2.3游戲初始化接口游戲的初始化是實(shí)現(xiàn)游戲計(jì)費(fèi)的必須操作。在游戲啟動(dòng)之后計(jì)費(fèi)之前,務(wù)必調(diào)用如下方法,否則無(wú)法使用計(jì)費(fèi)功能。1 GameInterface.initializeApp(Activity main);如果合作伙伴希望自定義計(jì)費(fèi)界面的游戲名稱,游戲提供商及客服電話信息(SDK默認(rèn)采用平臺(tái)上申報(bào)業(yè)務(wù)時(shí)填寫(xiě)的客服電話),可以調(diào)用重載接口2實(shí)現(xiàn):2 GameInterface.initializeApp(Activity main, String gameName, String provider, String servi
11、ceTel);注:初始化接口中將完成用戶登錄流程,如果合作方需要用戶登錄信息可在初始化后到其網(wǎng)游服務(wù)器登錄同步接口中去獲取,詳細(xì)實(shí)現(xiàn)請(qǐng)見(jiàn)2.7章節(jié)。推薦精選參數(shù)描述:參數(shù)名稱類型意義注釋:actActivity游戲項(xiàng)目的上下文環(huán)境該Activity需要在游戲運(yùn)行期間不能被finish掉,否則計(jì)費(fèi)會(huì)出現(xiàn)不可預(yù)知問(wèn)題gameNameString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的游戲名稱傳null時(shí),SDK使用平臺(tái)申報(bào)的業(yè)務(wù)名稱providerString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的游戲提供商名稱傳null時(shí),SDK使用平臺(tái)中合作伙伴管理欄目中填寫(xiě)的內(nèi)容提供商名稱serviceTelString移動(dòng)計(jì)費(fèi)界面展現(xiàn)的客服電話大多
12、數(shù)情況,不需要指定該值,SDK會(huì)從使用平臺(tái)上業(yè)務(wù)申報(bào)時(shí)指定的客服電話調(diào)用示例:GameInterface.initializeApp(this);2.2.4設(shè)置登錄透?jìng)鲄?shù)接口描述:由于SDK會(huì)自動(dòng)完成登錄流程,登錄成功后,移動(dòng)平臺(tái)系統(tǒng)將會(huì)登錄結(jié)果同步到游戲服務(wù)器,則游戲開(kāi)發(fā)者需要根據(jù)此參數(shù),取得登錄開(kāi)始與結(jié)束的唯一對(duì)應(yīng)關(guān)系。該參數(shù)的使用方式,需要結(jié)合2.7章節(jié),才有意義。接口定義:GameInterface.setExtraArguments(String args);參數(shù)描述:參數(shù)名稱類型意義注釋:argsString可擴(kuò)展的自定義業(yè)務(wù)參數(shù)集合,對(duì)于網(wǎng)游業(yè)務(wù),可以用該接口設(shè)置登錄透?jìng)鲄?shù)
13、調(diào)用示例:String cpparam = “20131031101034z”;GameInterface.setExtraArguments(new Stringcpparam)推薦精選2.2.5游戲登錄結(jié)果回調(diào)接口SDK會(huì)在2.2.3章節(jié)初始化接口中實(shí)現(xiàn)登錄流程,并通過(guò)該接口告知游戲開(kāi)發(fā)者登錄結(jié)果。游戲開(kāi)發(fā)者根據(jù)該接口的回調(diào)結(jié)果向自有游戲服務(wù)器獲取登錄結(jié)果的用戶信息,并完成自身業(yè)務(wù)處理邏輯。通常的業(yè)務(wù)處理場(chǎng)景:游戲開(kāi)發(fā)者在收到該接口的成功回調(diào)結(jié)果后,需要自行發(fā)起客戶端與游戲服務(wù)器的交互,從自有游戲服務(wù)器獲取登錄用戶信息。游戲自有服務(wù)器地址的配置及開(kāi)發(fā)規(guī)范見(jiàn)2.7章節(jié)。接口定義:GameIn
14、terface. setLoginListener (Context context, ILoginCallback callback);參數(shù)描述:參數(shù)名稱類型意義注釋:contextContext觸發(fā)該接口的應(yīng)用上下文環(huán)境callbackILoginCallback登錄結(jié)果的回調(diào)接口?;卣{(diào)方法:onResult(int resultCode, String userId, Object ogj);resultCode:登錄結(jié)果。枚舉定義:LoginResult.UNKOWN 沒(méi)有登錄LoginResult. SUCCESS_IMPLICIT 隱式登錄成功LoginResult. FAILED
15、_IMPLICIT 隱式登錄失敗。LoginResult. SUCCESS_EXPLICIT 顯式登錄成功LoginResult. FAILED_EXPLICIT 顯式登錄失敗。userId:用戶偽碼:當(dāng)前登錄的用戶偽碼。調(diào)用示例:GameInterface.setLoginListener(BillingDemo.this, new ILoginCallback() Overridepublic void onResult(int resultCode, String userId, Object ogj) if (LoginResult.SUCCESS_EXPLICIT = resultC
16、ode | LoginResult.SUCCESS_IMPLICIT = resultCode) System.out.println(Login success);推薦精選else if (LoginResult.FAILED_EXPLICIT = resultCode | LoginResult.FAILED_IMPLICIT = resultCode) System.out.println(Login fail);else System.out.println(Login unkown););2.3 游戲啟動(dòng)畫(huà)面在AndroidManifest.xml中的主入口Activity配置為Ga
17、meOpenActivity(即SDK提供的游戲啟動(dòng)畫(huà)面的Activity)。游戲原來(lái)的主入口Activity請(qǐng)?zhí)砑拥絩es/values/g_strings.xml中的g_class_name字符串中,使得啟動(dòng)畫(huà)面完成后即啟動(dòng)游戲例如:your.game.ui.Entry另外:該方式可以通過(guò)接口GameInterface.isMusicEnabled()來(lái)判斷用戶是否選擇開(kāi)啟背景音效,接口詳細(xì)定義見(jiàn)(2.9章節(jié))如果游戲使用的API Level是小于等于3的情況,即:游戲是基于Android 1.5開(kāi)發(fā)的,那么還需要設(shè)置一個(gè)低版本標(biāo)識(shí),(API 小于4的情況,Android本身不支持圖片自適
18、配,故可能導(dǎo)致SDK中的界面元素被放大,UI效果差)true,這樣SDK會(huì)讀取該標(biāo)識(shí),并完成開(kāi)機(jī)界面的自適配。2.4 游戲退出接口游戲退出時(shí),需調(diào)用該接口完成退出邏輯,該接口是與2.2.2章節(jié)成對(duì)出現(xiàn),前者用戶初始化SDK實(shí)例,后者用于釋放SDK占用的資源及內(nèi)存,并實(shí)現(xiàn)退出確認(rèn)界面。調(diào)用接口:GameInterface.exit(Context context, GameExitCallback callback);參數(shù)描述:參數(shù)名稱類型意義注釋:contextContext觸發(fā)該接口的應(yīng)用上下文環(huán)境callbackGameExitCallback用戶在退出界面回調(diào)處理接口。開(kāi)發(fā)者需要實(shí)現(xiàn)其中
19、的接口方法:onConfirmExit()。onConfirmExit()表示用戶確認(rèn)退出操作的接口方法,這里面通常是資源釋放代碼。推薦精選和onCancelExit()。onCancelExit()表示用戶取消退出,此時(shí)需要回到原游戲界面。調(diào)用示例:(具體可以參考Demo示例的BillingDemo.java)GameInterface.exit(BillingDemo.this, new GameExitCallback() Overridepublic void onConfirmExit() /確認(rèn)退出邏輯Overridepublic void onCancelExit() /取消退出
20、邏輯);2.5 更多游戲接口點(diǎn)擊游戲主菜單界面的更多游戲按鈕,調(diào)用下面接口:GameInterface.viewMoreGames(Contextcontext);參數(shù)描述:參數(shù)名稱類型意義注釋:contextContext游戲項(xiàng)目的上下文環(huán)境2.6游戲計(jì)費(fèi)接口2.6.1計(jì)費(fèi)流程網(wǎng)游計(jì)費(fèi)流程:如下流程圖。(其中包含網(wǎng)游產(chǎn)品自有游戲服務(wù)器交互流程)推薦精選2.6.2 計(jì)費(fèi)接口通過(guò)GameInterface中的doBilling接口,可以直接啟動(dòng)計(jì)費(fèi)Activity進(jìn)行計(jì)費(fèi),計(jì)費(fèi)Activity內(nèi)部已經(jīng)實(shí)現(xiàn)了默認(rèn)的處理方法,合作伙伴只需要監(jiān)聽(tīng)計(jì)費(fèi)成功或失敗的狀態(tài)即可。合作伙伴調(diào)用如下接口,完成計(jì)費(fèi)
21、流程,通過(guò)不同的參數(shù)值完成各種計(jì)費(fèi)要求。如果游戲希望在計(jì)費(fèi)結(jié)束,比如計(jì)費(fèi)成功、失敗或用戶取消計(jì)費(fèi)后,處理自定義的邏輯,請(qǐng)實(shí)現(xiàn)IPayCallback回調(diào),其他情況可直接傳null值。如果游戲中某個(gè)計(jì)費(fèi)點(diǎn)需要重復(fù)計(jì)費(fèi),請(qǐng)將isRepeated參數(shù)傳true值。網(wǎng)游游戲需傳此參數(shù),計(jì)費(fèi)成功后將其同步至其網(wǎng)游服務(wù)器,可作為此次計(jì)費(fèi)的流水號(hào)。GameInterface.doBilling(Context context, Boolean useSms, Boolean isRepeated, String billingIndex, String cpParam, IPayCallback billi
22、ngCallback);推薦精選參數(shù)描述:參數(shù)名稱類型意義注釋:contextContext觸發(fā)計(jì)費(fèi)接口的Context對(duì)象計(jì)費(fèi)UI修改為dialog展現(xiàn)模式,故需要游戲開(kāi)發(fā)者調(diào)用接口時(shí)傳遞當(dāng)前context參數(shù)useSmsBoolean選擇采用短信計(jì)費(fèi)還是聯(lián)網(wǎng)計(jì)費(fèi)方式true:短信計(jì)費(fèi),false:聯(lián)網(wǎng)計(jì)費(fèi)isRepeatedBoolean該計(jì)費(fèi)點(diǎn)是否是非強(qiáng)制計(jì)費(fèi)點(diǎn)如果該參數(shù)傳遞true,表示本次計(jì)費(fèi)的計(jì)費(fèi)點(diǎn)是可重復(fù)計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),SDK不自動(dòng)保存計(jì)費(fèi)標(biāo)志位;傳遞false則為一次性計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),SDK將自動(dòng)保存計(jì)費(fèi)標(biāo)志位,用戶下一次玩到該計(jì)費(fèi)點(diǎn)時(shí),不會(huì)重復(fù)跳出計(jì)費(fèi)界面。billingInde
23、xString計(jì)費(fèi)點(diǎn)索引游戲中設(shè)置的計(jì)費(fèi)點(diǎn)索引,對(duì)應(yīng)于中國(guó)移動(dòng)游戲基地游戲平臺(tái)該游戲內(nèi)容下“激活點(diǎn)信息”中的“激活點(diǎn)計(jì)費(fèi)代碼”的后三位(見(jiàn)圖示如下)。該計(jì)費(fèi)點(diǎn)計(jì)費(fèi)代碼的后三位為“000”則billingIndex設(shè)置為“000”,若該計(jì)費(fèi)點(diǎn)計(jì)費(fèi)代碼的后三位為“001”則billingIndex設(shè)置為“001”,以此類推。cpParamStringcpParamcpParam透?jìng)鲄?shù),此參數(shù)由合作方規(guī)則(16byte),在計(jì)費(fèi)完成后游戲平臺(tái)會(huì)將計(jì)費(fèi)結(jié)果及此參數(shù)一并同步到網(wǎng)游服務(wù)器計(jì)費(fèi)結(jié)果地址上去,可作為此次付費(fèi)流水號(hào)。billingCallbackIPayCallback計(jì)費(fèi)結(jié)果的回調(diào)邏輯Bil
24、lingResult.SUCCESS:計(jì)費(fèi)成功的回調(diào)處理,BillingResult.FAILED:計(jì)費(fèi)失敗后的回調(diào)處理,BillingResult.CANCELLED:用戶不進(jìn)行計(jì)費(fèi)的回調(diào)處理,中國(guó)移動(dòng)游戲基地游戲平臺(tái)游戲內(nèi)容下“激活點(diǎn)信息”中的“激活點(diǎn)計(jì)費(fèi)代碼”的后三位示例,計(jì)費(fèi)點(diǎn)“激活游戲”的代碼后三位為“001”,計(jì)費(fèi)點(diǎn)“超級(jí)彈簧”的代碼后三位為“004”。推薦精選代碼調(diào)用示例:對(duì)計(jì)費(fèi)代碼后三位為”001”的計(jì)費(fèi)點(diǎn)(非重復(fù)計(jì)費(fèi)的計(jì)費(fèi)點(diǎn))進(jìn)行付費(fèi)IPayCallback billingCallback = new IPayCallback() Overridepublic void on
25、Result(int resultCode, String billingIndex, Object arg) System.out.println(“Billing result of items“+billingIndex+” is: ” + resultCode);GameInterface.doBilling(this, true, false, “000”, “2013101610121270”, billingCallback);特別說(shuō)明:計(jì)費(fèi)接口要在游戲的主線程里調(diào)用2.7網(wǎng)游登錄同步接口合作方通過(guò)此接口獲得游戲業(yè)務(wù)平臺(tái)同步的用戶信息。接口地址:http:/indexURL?us
26、erId=xxx&key=xxx&channelId=xxxx®ion=xxx&cpparam=xxx其中:indexURL是網(wǎng)游合作方在業(yè)務(wù)申報(bào)時(shí)提交的網(wǎng)游服務(wù)器用戶信息同步接口。接口相關(guān)參數(shù):同步接口表參數(shù)名稱重要性類型長(zhǎng)度(字節(jié))描述信息userIdMString10用戶偽碼keyMString24用戶登錄網(wǎng)游的事務(wù)ID,與返回給客戶端的KEY一致。channelIdMString88位渠道代碼推薦精選regionOString30用戶歸屬地信息cpparamOString16透?jìng)鲄?shù)合作方接口的返回值:返回內(nèi)容為普通文本,內(nèi)容如下:Content-Type: text/plain
27、; charset=UTF8rContent-Length: xxrr02.8計(jì)費(fèi)同步接口此接口地址由合作方提供。在游戲申報(bào)時(shí),合作方需要提供該款網(wǎng)游接收用戶購(gòu)買(mǎi)道具通知的接口,并在游戲上線過(guò)程中確保同步服務(wù)器的正常,以免影響用戶計(jì)費(fèi)。http:/:?userId=XXXX&contentId=XXXXX&consumerCode=XXXX&cpId&hRet=XXXX&versionId=XXXX&cpparam=XXXX&packageID=XXXX游戲業(yè)務(wù)平臺(tái)以XML報(bào)文的方式把數(shù)據(jù)POST給上面的URL,合作方返回的內(nèi)容也是XML形式。輸入?yún)?shù)輸入?yún)?shù)表標(biāo)識(shí)符重要性類型長(zhǎng)度(字節(jié))描述
28、userIdMString10用戶偽碼contentIdMString12計(jì)費(fèi)代碼consumeCodeMString12道具計(jì)費(fèi)代碼cpIdMString6合作代碼hRetMString4平臺(tái)計(jì)費(fèi)結(jié)果(狀態(tài)碼外碼)0-成功 其他-失敗versionIdMString6版本號(hào)2_0_0, 統(tǒng)一填寫(xiě)2_0_0cpparamOString16CP透?jìng)鲄?shù)packageIDOString12套餐包ID(非局?jǐn)?shù)據(jù)ID)11007240026307160001850060003720017103071190621007推薦精選1382973893726XYZ2.9 獲取游戲背景音樂(lè)開(kāi)關(guān)游戲啟動(dòng)的第一個(gè)界
29、面(2.3章節(jié)),即:用戶選擇是否開(kāi)啟音效界面,用戶選擇是,則游戲需要實(shí)現(xiàn)有背景音樂(lè)的邏輯,否則反之,游戲開(kāi)發(fā)者可根據(jù)此接口判斷用戶是否選擇了開(kāi)啟音效:GameInterface.isMusicEnabled()注:該接口用于2.3章節(jié)中的第一種啟動(dòng)方式。3 Unity3D引擎游戲的開(kāi)發(fā)3.1 復(fù)制資源文件l 將SDKassets目錄中的文件復(fù)制到AssetsPluginsAndroidassets下。l 將SDKres下面的文件復(fù)制到AssetsPluginsAndroidres下。l 將SDKruntime下面的文件復(fù)制到AssetsPluginsAndroidruntime下。l 請(qǐng)將g
30、_strings.xml中的g_class_name配置為游戲真實(shí)的入口地址,默認(rèn)是com.unity3d.player.UnityPlayerActivityl 添加Application定義,詳見(jiàn)2.2.2章節(jié),將自定義的application java class 導(dǎo)出一個(gè)jar,放入libs目錄即可。3.2 編輯AndroidManifest.xml文件編輯AndroidManifest.xml文件,將開(kāi)機(jī)動(dòng)畫(huà)設(shè)置為游戲入口Activity,對(duì)真實(shí)的游戲入口進(jìn)行配置,同時(shí)加上必須的權(quán)限配置。1)添加SDK提供的Activity引用將SDKAndroidManifest.xml.acti
31、vity.txt中的文本Copy到游戲的AssetsPluginsAndroidAndroidManifest.xml中2)添加SDK需要的user-permision將SDKAndroidManifest.xml.permision.txt中的文本Copy到游戲的AssetsPluginsAndroidAndroidManifest.xml中(注意重復(fù)內(nèi)容)推薦精選3.3 為游戲增加Unity3D腳本1 添加SDK提供的C#腳本文件將SDKUnity3DCmBillingAndroid.cs文件Copy到AssetsPluginsAndroid中2 在游戲初啟動(dòng)界面,調(diào)用接口CmBillin
32、gAndroid.Instance.InitializeApp()參數(shù):無(wú)調(diào)用該接口完成SDK計(jì)費(fèi)流程需要的信息。該接口需在游戲一啟動(dòng)時(shí)調(diào)用。調(diào)用示例見(jiàn)SDK提供的Demo腳本,CmBillingAndroidDemo。3 在游戲啟動(dòng)后,判斷用戶是否開(kāi)啟音效接口:CmBillingAndroid.Instance.IsMusicEnabled();返回值:bool類型,標(biāo)識(shí)用戶是否選擇開(kāi)啟音效游戲開(kāi)發(fā)者需要根據(jù)該返回值,設(shè)定游戲背景音樂(lè)是否開(kāi)啟。調(diào)用示例見(jiàn)SDK提供的Demo腳本,CmBillingAndroidDemo。4 在游戲需要彈出計(jì)費(fèi)界面的場(chǎng)景調(diào)用計(jì)費(fèi)接口:CmBillingAndr
33、oid.Instance.DoBilling(bool useSms, bool isRepeated, String index, String cpParam,String gameObject, String runtimeScriptMethod);參數(shù):useSms:是否采用短信計(jì)費(fèi)模式,true是,false則采用聯(lián)網(wǎng)計(jì)費(fèi)isRepeated:標(biāo)識(shí)此次計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),是否是需要重復(fù)計(jì)費(fèi)的計(jì)費(fèi)點(diǎn),是則SDK不保存計(jì)費(fèi)標(biāo)志,用戶可繼續(xù)對(duì)該計(jì)費(fèi)點(diǎn)付費(fèi),false,則只能計(jì)費(fèi)一次。index:計(jì)費(fèi)點(diǎn)索引,詳細(xì)介紹請(qǐng)參考2.4.2章節(jié)。cpParam: cpParam透?jìng)鲄?shù),此參數(shù)由合作方規(guī)
34、則(16byte),在計(jì)費(fèi)完成后游戲平臺(tái)會(huì)將計(jì)費(fèi)結(jié)果及此參數(shù)一并同步到網(wǎng)游服務(wù)器計(jì)費(fèi)結(jié)果同步地址上去,可作為此次計(jì)費(fèi)的流水號(hào)。gameObject:游戲場(chǎng)景中的對(duì)象,SDK內(nèi)部完成計(jì)費(fèi)邏輯后,并把計(jì)費(fèi)結(jié)果通過(guò)Unity內(nèi)部API(com.unity3d.player.UnityPlayer.UnitySendMessage(String gameObject,StringruntimeScriptMethod,Stringargs))通知到Unity,故游戲開(kāi)發(fā)者需要指定一個(gè)游戲?qū)ο蠛驮搶?duì)象的運(yùn)行腳本,用于偵聽(tīng)SDK的計(jì)費(fèi)結(jié)果。runtimeScriptMethod:隸屬于gameObject對(duì)象的運(yùn)行時(shí)腳本的方法名稱,該方法會(huì)在收到通知后觸發(fā)。調(diào)用示例見(jiàn)SDK提供的Demo腳本,CmBillingAndroidDemo。5 獲取計(jì)費(fèi)結(jié)果接口:監(jiān)聽(tīng)SDK付費(fèi)結(jié)果:通過(guò)監(jiān)聽(tīng)SDK的付費(fèi)請(qǐng)求,獲取計(jì)費(fèi)結(jié)果,如接口4中定義的gameObject和runtimeScriptMethod參數(shù),游戲可以根據(jù)運(yùn)行邏輯需要,指定該參數(shù)值,在run
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電力工業(yè)概況》課件
- 小學(xué)一年級(jí)100以內(nèi)口算題
- 小學(xué)三年級(jí)多位數(shù)加減法脫式計(jì)算練習(xí)題
- 銀行績(jī)效考核總結(jié)
- 航空航天行業(yè)會(huì)計(jì)工作總結(jié)
- 《課程TMA系統(tǒng)篇》課件
- 公益機(jī)構(gòu)后勤管理工作概述
- 班主任與家校溝通的藝術(shù)與實(shí)踐
- 2023-2024學(xué)年河南省周口市部分校高三(下)開(kāi)學(xué)地理試卷(2月份)
- 《創(chuàng)新的內(nèi)涵培訓(xùn)》課件
- 圍手術(shù)期血糖管理指南
- 國(guó)際經(jīng)濟(jì)學(xué)中文版(克魯格曼教材)課件
- 管理方案日間照料中心
- 2024福建省能化集團(tuán)下屬古雷熱電有限責(zé)任公司社會(huì)招聘筆試參考題庫(kù)附帶答案詳解
- 江蘇省蘇州市2023-2024學(xué)年高一上學(xué)期期末學(xué)業(yè)質(zhì)量陽(yáng)光指標(biāo)調(diào)研政治試卷
- 廣東省中山市2023-2024學(xué)年七年級(jí)上學(xué)期期末英語(yǔ)試題
- 煤礦安全生產(chǎn)管理人員逢查必考題庫(kù)(500題)
- 2024大型活動(dòng)標(biāo)準(zhǔn)化執(zhí)行手冊(cè)
- 上頜骨骨折的護(hù)理
- 上海市嘉定區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末語(yǔ)文試題
- 《機(jī)械制造基礎(chǔ)》課件-第一章 車削加工
評(píng)論
0/150
提交評(píng)論