您的位置:首页 > 移动开发 > Unity3D

android应用中加入admob(unity,eclipse均可)

2012-03-16 10:30 651 查看
1.注册admob账号,获取ID 网址http://www.admob.com

2.下载admob的SDK,在eclipse中导入admob的jar包

4.我使用的是4.3.1的版本,这个版本要求SDK版本在3.2以上,即在project.properties文件中target=android-13,如果这个不改,那么在AndroidManifest.xml的配置中,你就悲剧了。

5.AndroidManifest.xml配置如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mjm.nono"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".AdsActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:name="com.google.ads.AdActivity" />
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
如果没有修改之前的project.properties文件中target=android-13,
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
这句话就会报错。因为uiMode是到8才出现的,而screenSize和smallestScreenSize是到13才出现的。

6.代码设置如下,适用于Unity:

我没有用xml进行布局,直接代码控制布局叠加在当前布局之上,间隔一段时间就会出现广告,点击广告上的关闭按钮,进行关闭。

如果是在Unity进行添加,还需导入classes.jar的包,然后继承UnityPlayerActivity类。如果不是的话,直接继承Activity类。然后在onCreate设置你的View

public class AdsActivity extends UnityPlayerActivity {
protected static final int HANDLER_SHOW = 0;
protected static final int HANDLER_HIDE = 1;
private boolean adVisible = true;
private AdView adView;
private Button bt1;
boolean show = false;
Timer timer;
boolean rec=false;

Handler h = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case HANDLER_HIDE:
if (adVisible) {
System.out.println("hahahahah");
bt1.setVisibility(View.GONE);
adView.setVisibility(View.GONE);
adVisible = false;
show = true;

}
break;
case HANDLER_SHOW:
if (!adVisible) {
bt1.setVisibility(View.VISIBLE);
adView.setVisibility(View.VISIBLE);
adVisible = true;
show = false;
}
break;
default:
break;
}
}
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShowAds();
timer = new Timer(true);
timer.schedule(task, 1000, 10000);

}

TimerTask task = new TimerTask() {
public void run() {
System.out.println("start");
if (!adVisible&&rec) {
Message message = new Message();
message.what = HANDLER_SHOW;
h.sendMessage(message);
}
}
};

@Override
public void onDestroy() {
if (adView != null) {
adView.destroy();
}
timer.cancel();
super.onDestroy();
}

public void ShowAds() {

RelativeLayout layout2 = new RelativeLayout(this);
adView = new AdView(this, AdSize.IAB_BANNER, "a14f436bec13378");
AdRequest adRequest = new AdRequest();

adView.loadAd(adRequest);
adView.setAdListener(new AdListener() {

@Override
public void onReceiveAd(Ad arg0) {
// TODO Auto-generated method stub
bt1.setVisibility(View.VISIBLE);
System.out.println("ad rec");
rec=true;
}

@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub

}

@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub

}

@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// TODO Auto-generated method stub

}

@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub

}
});

RelativeLayout.LayoutParams lpLayoutParams2 = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lpLayoutParams2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout2.addView(adView, lpLayoutParams2);

bt1 = new Button(this);
bt1.setText("close");
bt1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
RelativeLayout.LayoutParams lpLayoutParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lpLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout2.addView(bt1, lpLayoutParams);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("close");
h.sendEmptyMessage(HANDLER_HIDE);

}
});
bt1.setVisibility(View.GONE);

addContentView(layout2, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: