Cocos2d-x 遊戲中嵌入廣告(百度橫幅)

來源:互聯網
上載者:User

轉載請註明出處:http://blog.csdn.net/oyangyufu/article/details/36716955

DEMO:http://download.csdn.net/detail/oyangyufu/7589981

上一篇寫了cocos2d-x嵌入mogo橫幅廣告(點擊此跳轉),這篇寫如何在cocos2d-x中嵌入百度橫幅廣告。

百度橫幅廣告測試:

1、將cocos2d-x項目匯入到eclipse上

2、註冊登入百度移動聯盟(http://munion.baidu.com/)後,下載推廣SDK android 版,下載完名稱為:Baidu_MobAds_SDK.zip

3、解壓後擷取jar包,Baidu_MobAds_SDK.jar,放入libs目錄下,單擊右鍵->Build Path->Add to Build Path

4、在AndroidManifest.xml添加使用者權限:

    <uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.RECORD_AUDIO" />    <uses-permission android:name="android.permission.GET_TASKS" />    <uses-permission android:name="android.permission.CAMERA" />    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>

5、添加APPSID與計費名及申明AppActivity

   <!-- 聲明百度的Activity --><meta-data android:name="BaiduMobAd_APP_ID" android:value="debug" /> <meta-data android:name="BaiduMobAd_APP_SEC" android:value="debug" /><activity android:name="com.baidu.mobads.AppActivity"     android:configChanges="keyboard|keyboardHidden|orientation" /><!--baidu廣告 end  -->

注此時測試APPSID和計費名的值為debug,調試成功後改為自己申請成功的APPSID和計費名,即可上傳應用至聯盟端審核,審核通過後便顯示廣告並計費。

6、在主Activity類中,添加橫幅廣告

package com.cocos2dx.org;import org.cocos2dx.lib.Cocos2dxActivity;import org.cocos2dx.lib.Cocos2dxGLSurfaceView;import org.json.JSONObject;import com.baidu.mobads.AdSettings;import com.baidu.mobads.AdView;import com.baidu.mobads.AdViewListener;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.RelativeLayout;public class Test extends Cocos2dxActivity{public static SharedPreferences sharedPreferences;public static SharedPreferences.Editor editor;private static Handler handler;private static RelativeLayout bannerLayout;private AdView adView;    protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);bannerLayout = new RelativeLayout(this);RelativeLayout.LayoutParams parentLayputParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.WRAP_CONTENT);this.addContentView(bannerLayout, parentLayputParams);adView = new AdView(this);handler = new Handler(){@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubswitch (msg.what) {case 0:if (bannerLayout.getChildCount() == 0) {// 設定監聽器adView.setListener(new AdViewListener() {public void onAdSwitch() {Log.w("", "onAdSwitch");}public void onAdShow(JSONObject info) {Log.w("", "onAdShow " + info.toString());}public void onAdReady(AdView adView) {Log.w("", "onAdReady " + adView);}public void onAdFailed(String reason) {Log.w("", "onAdFailed " + reason);}public void onAdClick(JSONObject info) {Log.w("", "onAdClick " + info.toString());}public void onVideoStart() {Log.w("", "onVideoStart");}public void onVideoFinish() {Log.w("", "onVideoFinish");}@Overridepublic void onVideoClickAd() {Log.w("", "onVideoFinish");}@Overridepublic void onVideoClickClose() {Log.w("", "onVideoFinish");}@Overridepublic void onVideoClickReplay() {Log.w("", "onVideoFinish");}@Overridepublic void onVideoError() {Log.w("", "onVideoFinish");}});//顯示廣告RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT ,RelativeLayout.LayoutParams.WRAP_CONTENT);layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,RelativeLayout.TRUE);bannerLayout.addView(adView, layoutParams);}break;}}};   }    public Cocos2dxGLSurfaceView onCreateView() {    Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);    // HelloWorld should create stencil buffer    glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);        return glSurfaceView;    }    //靜態函數cpp調用public static void showBannerStatic() {Message msg = handler.obtainMessage();msg.what = 0;handler.sendMessage(msg);}    static {        System.loadLibrary("cocos2dcpp");    }     }


 

 

7、在CPP程式中通過JNI調用showBannerStatic()函數即可。

8、如下,點擊show banner按鈕顯示廣告


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.