ページへ戻る
印刷
AndroidでのAdmobのANEの作成_Android側の作成
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:AndroidでのAdmobのANEの作成_Android側の作成 をテンプレートにして作成
開始行:
*導入
まず、通常のAndroidアプリで広告を表示できないとANEを作成...
こちらの内容は「[[AndroidでのANEの作成/Android側の作成]]...
また、こちらではAdmobの広告IDを使いますので、あらかじめテ...
*プロジェクトの作成
最初にAndroid Studioでプロジェクトの作成を行います。
&ref(admobNewProject.jpg,mw:480,mh:360);
名前は好きな物でかまいません。
次のターゲットは「Phone and Tablet」として、Minimum SDKは...
&ref(admobTarget.jpg,mw:480,mh:360);
次のActivityは余計なものが無い方がやりやすいので「Empty A...
&ref(admobActivity.jpg,mw:480,mh:360);
Activityの名前はそのままMainActivityにしておきます。
&ref(admobActivityCustomize.jpg,mw:480,mh:360);
「Finish」ボタンを押すとプロジェクトが作成されます。
*テスト用ボタンの作成
動作確認を行うためのテスト用ボタンを配置します。
「[[AndroidでのAdmobのANEの作成]]」でも説明したように、こ...
-各種IDの設定
-バナー広告の表示
-バナー広告の非表示
-インタースティシャル広告のロード
-インタースティシャル広告の表示
このうち最初の「各種IDの設定」については内部的に一度行う...
よって残りの4つについて、それぞれの機能を確認できるように...
ボタン配置方法の詳細は[[こちらの記事で:http://njf.jp/cms/...
&ref(admobTestBtns.jpg,mw:480,mh:360);
ちょっとずれていますが、Androidのレイアウト調整は結構面倒...
それぞれ以下のようにテキストとIDを割り振っています。
|ID|テキスト|
|showBannerBtn|SHOW BANNER|
|hideBannerBtn|HIDE BANNER|
|loadInterstitialBtn|LOAD INTER|
|showInterstitialBtn|SHOW INTER|
*ANE用のライブラリの作成
次にテスト用のActivityなどと主処理を分離するために、ライ...
File->New->New Moduleを選択します。
&ref(admobNewModule.jpg,mw:480,mh:360);
Android Libraryを選びます。
&ref(admobNewLibrary.jpg,mw:480,mh:360);
名前はANEAdmobとしておきます。
&ref(admobLibraryName.jpg,mw:480,mh:360);
Finishボタンを押せばライブラリが作成されます。
*Google Play Servicesの追加 (現在は不要)
&font(Red){----アップデートにより、このセクションの手順は...
(この部分については[[公式ページ:https://developers.googl...
Admobの表示にはGoogle Play Servicesが必要です。それを使え...
&ref(admobGooglePlayServiceUpdate.jpg,mw:480,mh:360);
すると次回起動時などにそれらも自動更新されます。
すぐにインストールやアップデートしたい場合は、ウインドウ...
次にaneadmobのライブラリの中のbuild.gradleのdependencies...
&ref(admobBuildGradle.jpg,mw:480,mh:360);
例えばver.9.2.1なら
compile 'com.google.android.gms:play-services-ads:9.2.1'
とします。
または
compile 'com.google.android.gms:play-services-ads:9.+'
とすると、ver.9で一番新しいものが使われます。
ただし、ANEの製作では後でGoogle Play Servicesのバージョン...
build.gradleはあちこちにありますが、aneadmobの下のものな...
するとdependencies部分はバージョン部分を除いて以下のよう...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services-ads:9.2...
}
あとは「Sync Now」という表示が出ていると思うので、それを...
*主処理の追加
広告表示の主処理となる部分を作っていきますが、あとでANEと...
一方、Activityの方は、それを呼び出すテスト用のコードのみ...
まず
「aneadmob->src->main->java->jp.njf.admob」の下にANEAdmob...
&ref(admobANEAdmobClass.jpg,mw:480,mh:360);
前述しましたが、このANEには以下の機能を実装予定です。
-各種IDの設定
-バナー広告の表示
-バナー広告の非表示
-インタースティシャル広告のロード
-インタースティシャル広告の表示
最初の「各種ID」とは、AdmobのアプリケーションID、バナーID...
よってこのクラスには以下のpublicなメソッドが必要です。
|メソッド名|引数|機能|
|setAppID|アプリケーションID(String型)|アプリケーション...
|setBannerID|バナーの広告ID(String型)|バナーの広告IDを...
|setInterstitialID|インタースティシャルの広告ID(String型...
|showBanner|なし|バナー広告の表示|
|hideBanner|なし|バナー広告の非表示|
|loadInterstitial|なし|インタースティシャル広告のロード|
|showInterstitial|なし|インタースティシャル広告の表示|
戻り値は全てなし、つまりvoid型メソッドです。
ここで「インタースティシャル広告のロード」については説明...
それを素早く表示するためには、あらかじめロードしておいて...
例えば、画面遷移5回毎に表示するなら一回目でロードし、4回...
ではクラスの詳細を解説します。
まずコンストラクタは広告の初期化で必要なactivityを引数と...
public ANEAdmob(Activity activity){
this.activity = activity;
}
次にアプリケーションのIDを設定するメソッドです。これは広...
public void setAppID(String appID){
MobileAds.initialize(activity, appID);
}
次にバナーのIDを設定する関数です。
バナーの初期化も行い、かつアプリの下の中心に表示するよう...
public void setBannerID(String bannerID){
if(bannerView == null) {
bannerView = new AdView(activity);
bannerView.setAdUnitId(bannerID);
bannerView.setVisibility(AdView.GONE);
bannerView.setAdSize(AdSize.BANNER);
FrameLayout.LayoutParams adLayout = new Frame...
adLayout.gravity = Gravity.BOTTOM | Gravity.C...
FrameLayout.LayoutParams adParams = adLayout;
activity.addContentView(bannerView, adParams);
bannerView.setBackgroundColor(Color.BLACK);
}
}
バナーが二つ表示されるとやっかいなので、一度しか初期化で...
ここでsetBackgroundColorを使って背景色を黒にしています。
これはまれに広告のロードが終わっても画像が表示されず、透...
誤クリックが多いと、Admobはアカウント停止になる場合もあり...
Admobは特にバナーの規約が厳しいので、アプリのどこにどう表...
詳しくは「[[AdMob実装時の注意点]]」でも書いています。
バナーの表示と非表示はバナーの更新を止めて、viewのvisibil...
public void showBanner(){
if(bannerView.getVisibility() == AdView.VISIBLE){
return;
}
bannerView.setVisibility(AdView.VISIBLE);
bannerView.resume();
bannerView.loadAd(makeAdRequest());
}
public void hideBanner(){
if(bannerView.getVisibility() == AdView.GONE){
return;
}
bannerView.pause();
bannerView.setVisibility(AdView.GONE);
}
通常、バナー広告は数十秒〜数分ごとに更新されます。
AdViewのpauseメソッドはこの更新を止めます。
バナーを消すと更新は不要なので呼び出しています。
アプリがバックグラウンドにまわったときも、余計な負荷を除...
ここの例では、単にバックグラウンドでhideBannerを、前にき...
ここでmakeAdRequestメソッドは広告用のリクエストを作るメソ...
private AdRequest makeAdRequest() {
return new AdRequest.Builder().build();
}
一行しかありませんが、インタースティシャル広告でも使うの...
return new AdRequest.Builder().addTestDevice("デバイスID...
とするとテスト用の広告が表示されるようになります。
「デバイスID」の部分はlogcatに
I/Ads: Use AdRequest.Builder.addTestDevice("デバイスID")...
といった感じで表示されるので探してみて下さい。
Admobは開発者が自ら広告をタップしたり、開発時に実際の広告...
現実的には少々テストで表示したり、一度や二度ほどタップし...
そのため、テスト時にはこのようにテスト用デバイスを設定す...
また、その時のためにこのようにAdRequestを作成するメソッド...
インタースティシャルの方は簡単です。
public void setInterstitialID(String interstitialID){
interstitial = new InterstitialAd(activity);
interstitial.setAdUnitId(interstitialID);
}
public void loadInterstitial(){
interstitial.loadAd(makeAdRequest());
}
public void showInterstitial(){
if(interstitial.isLoaded()){
interstitial.show();
}
}
isLoadedはロード完了かどうかを判定するメソッドです。
インタースティシャルは規約的にも注意するのは表示させすぎ...
*Androidアプリとしてのテスト
次にANEAdmobクラスをAndroidでテストします。
まずappの下のbuild.gradleに次の一行を加えます。
compile project(':aneadmob')
さらにapp/src/main/AndroidManifest.xmlに次のパーミッショ...
<uses-permission android:name="android.permission.INT...
<uses-permission android:name="android.permission.ACC...
同じくAndroidManifest.xmlのapplicationタグの中に次を入れ...
<meta-data android:name="com.google.android.gms.v...
android:value="@integer/google_play_services_...
<activity android:name="com.google.android.gms.ad...
android:theme="@android:style/Theme.Transluce...
あとはonCreateメソッドにボタンを押したときの処理を入れま...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aneAdmob = new ANEAdmob(this);
aneAdmob.setAppID(APP_ID);
aneAdmob.setBannerID(BANNER_ID);
aneAdmob.setInterstitialID(INTER_ID);
Button button = (Button) findViewById(R.id.showB...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.showB...
}
}
);
button = (Button) findViewById(R.id.hideBannerBt...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.hideB...
}
}
);
button = (Button) findViewById(R.id.loadIntersti...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.loadI...
}
}
);
button = (Button) findViewById(R.id.showIntersti...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.showI...
}
}
);
}
これでテスト可能です。
これで動かないと当然ながらANEにしたところで動きません。AN...
*ANE呼び出し処理の追加
Android上で問題なく実行されたら、ANEにするための処理を入...
[[こちらを参考に:http://njf.jp/cms/modules/xpwiki/?Androi...
最終的にaneadmobのbuild.gradleのdependencies以下に次の一...
compile files('libs/FlashRuntimeExtensions.jar')
次にActionScriptから呼び出される部分を作ります。
呼び出しには次の二つのクラスが必要です。
|名前|機能|インターフェイス|
|ANEAdmobFREExtension|呼び出しの定義と振り分け処理|FREExt...
|ANEAdmobFREFunction|実際に呼び出される関数|FREFunction|
ここではこれらのクラスをjp.njf.aneadmobパッケージとして制...
ここで呼び出されるクラスの設計には二つの選択肢があります。
呼び出される関数はFREFunctionをimplementsしておくと、その...
よって呼び出しメソッドの数だけクラスを作るか、一つのクラ...
前節のように、このANEには7つのメソッドがあるので、7つもク...
ただし、メソッドごとにクラスを作った方が呼び出しエラーな...
このように一長一短ありますので、場合に応じて設計を変えて...
まずANEAdmobFREExtensionクラスのcreateContextメソッドです...
@Override
public FREContext createContext(String s) {
FREContext context = new FREContext() {
@Override
public Map<String, FREFunction> getFunctions(...
Map<String, FREFunction> result = new Has...
result.put("admob", new ANEAdmobFREFuncti...
return result;
}
@Override
public void dispose() {
}
};
return context;
}
特に難しい部分はないはずです。分からない部分があれば「[[A...
次にANEAdmobFREFunctionのcallメソッドです。
第一引数をメソッドの振り分けに、第二引数をパラメータとし...
public FREObject call(FREContext freContext, FREObjec...
String method = "";
String prm = "";
try {
method = freObjects[0].getAsString();
} catch (Exception e) {
Log.e("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
try {
prm = freObjects[1].getAsString();
} catch (Exception e) {
Log.w("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
if(aneAdmob == null){
aneAdmob = new ANEAdmob(freContext.getActivit...
}
if(method.equals("setAppID") && !prm.equals("")){
aneAdmob.setAppID(prm);
}else if(method.equals("setBannerID") && !prm.equ...
aneAdmob.setBannerID(prm);
}else if(method.equals("setInterstitialID") && !p...
aneAdmob.setInterstitialID(prm);
}else if(method.equals("showBanner")){
aneAdmob.showBanner();
}else if(method.equals("hideBanner")){
aneAdmob.hideBanner();
}else if(method.equals("showInterstitial")){
aneAdmob.showInterstitial();
}else if(method.equals("loadInterstitial")){
aneAdmob.loadInterstitial();
}else{
Log.e("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
return null;
}
こちらも分からない部分があれば「[[AndroidでのANEの作成/An...
*jarファイルの取り出し
jarファイルの取り出しについては、[[こちらの記事:http://nj...
ツールバーの「Build->Rebuild Project」でビルドし直して、a...
----
-[[AndroidでのAdmobのANEの作成]]にもどる
-[[AndroidでのAdmobのANEの作成_swcの作成]]に進む
終了行:
*導入
まず、通常のAndroidアプリで広告を表示できないとANEを作成...
こちらの内容は「[[AndroidでのANEの作成/Android側の作成]]...
また、こちらではAdmobの広告IDを使いますので、あらかじめテ...
*プロジェクトの作成
最初にAndroid Studioでプロジェクトの作成を行います。
&ref(admobNewProject.jpg,mw:480,mh:360);
名前は好きな物でかまいません。
次のターゲットは「Phone and Tablet」として、Minimum SDKは...
&ref(admobTarget.jpg,mw:480,mh:360);
次のActivityは余計なものが無い方がやりやすいので「Empty A...
&ref(admobActivity.jpg,mw:480,mh:360);
Activityの名前はそのままMainActivityにしておきます。
&ref(admobActivityCustomize.jpg,mw:480,mh:360);
「Finish」ボタンを押すとプロジェクトが作成されます。
*テスト用ボタンの作成
動作確認を行うためのテスト用ボタンを配置します。
「[[AndroidでのAdmobのANEの作成]]」でも説明したように、こ...
-各種IDの設定
-バナー広告の表示
-バナー広告の非表示
-インタースティシャル広告のロード
-インタースティシャル広告の表示
このうち最初の「各種IDの設定」については内部的に一度行う...
よって残りの4つについて、それぞれの機能を確認できるように...
ボタン配置方法の詳細は[[こちらの記事で:http://njf.jp/cms/...
&ref(admobTestBtns.jpg,mw:480,mh:360);
ちょっとずれていますが、Androidのレイアウト調整は結構面倒...
それぞれ以下のようにテキストとIDを割り振っています。
|ID|テキスト|
|showBannerBtn|SHOW BANNER|
|hideBannerBtn|HIDE BANNER|
|loadInterstitialBtn|LOAD INTER|
|showInterstitialBtn|SHOW INTER|
*ANE用のライブラリの作成
次にテスト用のActivityなどと主処理を分離するために、ライ...
File->New->New Moduleを選択します。
&ref(admobNewModule.jpg,mw:480,mh:360);
Android Libraryを選びます。
&ref(admobNewLibrary.jpg,mw:480,mh:360);
名前はANEAdmobとしておきます。
&ref(admobLibraryName.jpg,mw:480,mh:360);
Finishボタンを押せばライブラリが作成されます。
*Google Play Servicesの追加 (現在は不要)
&font(Red){----アップデートにより、このセクションの手順は...
(この部分については[[公式ページ:https://developers.googl...
Admobの表示にはGoogle Play Servicesが必要です。それを使え...
&ref(admobGooglePlayServiceUpdate.jpg,mw:480,mh:360);
すると次回起動時などにそれらも自動更新されます。
すぐにインストールやアップデートしたい場合は、ウインドウ...
次にaneadmobのライブラリの中のbuild.gradleのdependencies...
&ref(admobBuildGradle.jpg,mw:480,mh:360);
例えばver.9.2.1なら
compile 'com.google.android.gms:play-services-ads:9.2.1'
とします。
または
compile 'com.google.android.gms:play-services-ads:9.+'
とすると、ver.9で一番新しいものが使われます。
ただし、ANEの製作では後でGoogle Play Servicesのバージョン...
build.gradleはあちこちにありますが、aneadmobの下のものな...
するとdependencies部分はバージョン部分を除いて以下のよう...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services-ads:9.2...
}
あとは「Sync Now」という表示が出ていると思うので、それを...
*主処理の追加
広告表示の主処理となる部分を作っていきますが、あとでANEと...
一方、Activityの方は、それを呼び出すテスト用のコードのみ...
まず
「aneadmob->src->main->java->jp.njf.admob」の下にANEAdmob...
&ref(admobANEAdmobClass.jpg,mw:480,mh:360);
前述しましたが、このANEには以下の機能を実装予定です。
-各種IDの設定
-バナー広告の表示
-バナー広告の非表示
-インタースティシャル広告のロード
-インタースティシャル広告の表示
最初の「各種ID」とは、AdmobのアプリケーションID、バナーID...
よってこのクラスには以下のpublicなメソッドが必要です。
|メソッド名|引数|機能|
|setAppID|アプリケーションID(String型)|アプリケーション...
|setBannerID|バナーの広告ID(String型)|バナーの広告IDを...
|setInterstitialID|インタースティシャルの広告ID(String型...
|showBanner|なし|バナー広告の表示|
|hideBanner|なし|バナー広告の非表示|
|loadInterstitial|なし|インタースティシャル広告のロード|
|showInterstitial|なし|インタースティシャル広告の表示|
戻り値は全てなし、つまりvoid型メソッドです。
ここで「インタースティシャル広告のロード」については説明...
それを素早く表示するためには、あらかじめロードしておいて...
例えば、画面遷移5回毎に表示するなら一回目でロードし、4回...
ではクラスの詳細を解説します。
まずコンストラクタは広告の初期化で必要なactivityを引数と...
public ANEAdmob(Activity activity){
this.activity = activity;
}
次にアプリケーションのIDを設定するメソッドです。これは広...
public void setAppID(String appID){
MobileAds.initialize(activity, appID);
}
次にバナーのIDを設定する関数です。
バナーの初期化も行い、かつアプリの下の中心に表示するよう...
public void setBannerID(String bannerID){
if(bannerView == null) {
bannerView = new AdView(activity);
bannerView.setAdUnitId(bannerID);
bannerView.setVisibility(AdView.GONE);
bannerView.setAdSize(AdSize.BANNER);
FrameLayout.LayoutParams adLayout = new Frame...
adLayout.gravity = Gravity.BOTTOM | Gravity.C...
FrameLayout.LayoutParams adParams = adLayout;
activity.addContentView(bannerView, adParams);
bannerView.setBackgroundColor(Color.BLACK);
}
}
バナーが二つ表示されるとやっかいなので、一度しか初期化で...
ここでsetBackgroundColorを使って背景色を黒にしています。
これはまれに広告のロードが終わっても画像が表示されず、透...
誤クリックが多いと、Admobはアカウント停止になる場合もあり...
Admobは特にバナーの規約が厳しいので、アプリのどこにどう表...
詳しくは「[[AdMob実装時の注意点]]」でも書いています。
バナーの表示と非表示はバナーの更新を止めて、viewのvisibil...
public void showBanner(){
if(bannerView.getVisibility() == AdView.VISIBLE){
return;
}
bannerView.setVisibility(AdView.VISIBLE);
bannerView.resume();
bannerView.loadAd(makeAdRequest());
}
public void hideBanner(){
if(bannerView.getVisibility() == AdView.GONE){
return;
}
bannerView.pause();
bannerView.setVisibility(AdView.GONE);
}
通常、バナー広告は数十秒〜数分ごとに更新されます。
AdViewのpauseメソッドはこの更新を止めます。
バナーを消すと更新は不要なので呼び出しています。
アプリがバックグラウンドにまわったときも、余計な負荷を除...
ここの例では、単にバックグラウンドでhideBannerを、前にき...
ここでmakeAdRequestメソッドは広告用のリクエストを作るメソ...
private AdRequest makeAdRequest() {
return new AdRequest.Builder().build();
}
一行しかありませんが、インタースティシャル広告でも使うの...
return new AdRequest.Builder().addTestDevice("デバイスID...
とするとテスト用の広告が表示されるようになります。
「デバイスID」の部分はlogcatに
I/Ads: Use AdRequest.Builder.addTestDevice("デバイスID")...
といった感じで表示されるので探してみて下さい。
Admobは開発者が自ら広告をタップしたり、開発時に実際の広告...
現実的には少々テストで表示したり、一度や二度ほどタップし...
そのため、テスト時にはこのようにテスト用デバイスを設定す...
また、その時のためにこのようにAdRequestを作成するメソッド...
インタースティシャルの方は簡単です。
public void setInterstitialID(String interstitialID){
interstitial = new InterstitialAd(activity);
interstitial.setAdUnitId(interstitialID);
}
public void loadInterstitial(){
interstitial.loadAd(makeAdRequest());
}
public void showInterstitial(){
if(interstitial.isLoaded()){
interstitial.show();
}
}
isLoadedはロード完了かどうかを判定するメソッドです。
インタースティシャルは規約的にも注意するのは表示させすぎ...
*Androidアプリとしてのテスト
次にANEAdmobクラスをAndroidでテストします。
まずappの下のbuild.gradleに次の一行を加えます。
compile project(':aneadmob')
さらにapp/src/main/AndroidManifest.xmlに次のパーミッショ...
<uses-permission android:name="android.permission.INT...
<uses-permission android:name="android.permission.ACC...
同じくAndroidManifest.xmlのapplicationタグの中に次を入れ...
<meta-data android:name="com.google.android.gms.v...
android:value="@integer/google_play_services_...
<activity android:name="com.google.android.gms.ad...
android:theme="@android:style/Theme.Transluce...
あとはonCreateメソッドにボタンを押したときの処理を入れま...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aneAdmob = new ANEAdmob(this);
aneAdmob.setAppID(APP_ID);
aneAdmob.setBannerID(BANNER_ID);
aneAdmob.setInterstitialID(INTER_ID);
Button button = (Button) findViewById(R.id.showB...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.showB...
}
}
);
button = (Button) findViewById(R.id.hideBannerBt...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.hideB...
}
}
);
button = (Button) findViewById(R.id.loadIntersti...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.loadI...
}
}
);
button = (Button) findViewById(R.id.showIntersti...
assert button != null;
button.setOnClickListener(new View.OnClickListen...
@Override
public void onClic...
aneAdmob.showI...
}
}
);
}
これでテスト可能です。
これで動かないと当然ながらANEにしたところで動きません。AN...
*ANE呼び出し処理の追加
Android上で問題なく実行されたら、ANEにするための処理を入...
[[こちらを参考に:http://njf.jp/cms/modules/xpwiki/?Androi...
最終的にaneadmobのbuild.gradleのdependencies以下に次の一...
compile files('libs/FlashRuntimeExtensions.jar')
次にActionScriptから呼び出される部分を作ります。
呼び出しには次の二つのクラスが必要です。
|名前|機能|インターフェイス|
|ANEAdmobFREExtension|呼び出しの定義と振り分け処理|FREExt...
|ANEAdmobFREFunction|実際に呼び出される関数|FREFunction|
ここではこれらのクラスをjp.njf.aneadmobパッケージとして制...
ここで呼び出されるクラスの設計には二つの選択肢があります。
呼び出される関数はFREFunctionをimplementsしておくと、その...
よって呼び出しメソッドの数だけクラスを作るか、一つのクラ...
前節のように、このANEには7つのメソッドがあるので、7つもク...
ただし、メソッドごとにクラスを作った方が呼び出しエラーな...
このように一長一短ありますので、場合に応じて設計を変えて...
まずANEAdmobFREExtensionクラスのcreateContextメソッドです...
@Override
public FREContext createContext(String s) {
FREContext context = new FREContext() {
@Override
public Map<String, FREFunction> getFunctions(...
Map<String, FREFunction> result = new Has...
result.put("admob", new ANEAdmobFREFuncti...
return result;
}
@Override
public void dispose() {
}
};
return context;
}
特に難しい部分はないはずです。分からない部分があれば「[[A...
次にANEAdmobFREFunctionのcallメソッドです。
第一引数をメソッドの振り分けに、第二引数をパラメータとし...
public FREObject call(FREContext freContext, FREObjec...
String method = "";
String prm = "";
try {
method = freObjects[0].getAsString();
} catch (Exception e) {
Log.e("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
try {
prm = freObjects[1].getAsString();
} catch (Exception e) {
Log.w("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
if(aneAdmob == null){
aneAdmob = new ANEAdmob(freContext.getActivit...
}
if(method.equals("setAppID") && !prm.equals("")){
aneAdmob.setAppID(prm);
}else if(method.equals("setBannerID") && !prm.equ...
aneAdmob.setBannerID(prm);
}else if(method.equals("setInterstitialID") && !p...
aneAdmob.setInterstitialID(prm);
}else if(method.equals("showBanner")){
aneAdmob.showBanner();
}else if(method.equals("hideBanner")){
aneAdmob.hideBanner();
}else if(method.equals("showInterstitial")){
aneAdmob.showInterstitial();
}else if(method.equals("loadInterstitial")){
aneAdmob.loadInterstitial();
}else{
Log.e("njf.jp.aneadmob", "ANEAdmobFREFunction...
}
return null;
}
こちらも分からない部分があれば「[[AndroidでのANEの作成/An...
*jarファイルの取り出し
jarファイルの取り出しについては、[[こちらの記事:http://nj...
ツールバーの「Build->Rebuild Project」でビルドし直して、a...
----
-[[AndroidでのAdmobのANEの作成]]にもどる
-[[AndroidでのAdmobのANEの作成_swcの作成]]に進む
ページ名: