1

ゲームに Admob バナー広告を表示していますが、AdView がゲームパッドからの入力を混乱させていることに気付きました。たとえば、X、A、L1、R1 などのボタンは機能しなくなり、トリガーもイベントも行われ
ません。また、他のボタンは、たとえばI receiveではなく Y が押されたときに、誤ったキー コードを生成します。onKeyDownonKeyUpKEYCODE_BUTTON_YKEYCODE_BUTTON_MENU

この問題は、(バナー自体ではなく) 画面に触れた後に発生します。画面に触れなければ、ゲームパッドは問題なく動作します。

したがって、AdView は重要なイベントなどを「盗んでいる」ようです。

、位置などのさまざまな AdView 設定をsetFocusable(false)試し、カスタム KeyListener を割り当てようとしましたが、何も役に立ちません。
2 つの異なるゲームパッドと異なる Android デバイスを試しました。
この問題は、AdView を削除するか、非表示にすると消えます...

4

2 に答える 2

1

わかりました、解決策を見つけたようです。dispatchKeyEventAdView への onKey イベントのディスパッチをオーバーライドしてキャンセルすると、ゲームパッドは正常に動作します。これを実行しても問題ないかどうかはわかりませんが、機能します。

public class MyAdView extends AdView {
    public MyAdView(Activity activity, AdSize adSize, String adUnitId) {
        super(activity, adSize, adUnitId);
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        return false;
    }
}
于 2013-09-26T11:52:34.107 に答える
0

これは私のために働く:

    `// ADS
    MobileAds.initialize(getApplicationContext(),  getResources().getString(R.string.banner_ad_unit_id));
    mAdView = (AdView) findViewById(R.id.adView);
    adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
    mAdView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            RelativeLayout fl = (RelativeLayout) findViewById(R.id.frameCounter);
            fl.setFocusableInTouchMode(true);
            fl.requestFocus();
        }
    });`

onAdLoaded イベントで、レイアウトとボイルにフォーカスを設定しました!!!

于 2016-11-25T17:54:08.107 に答える