繁体   English   中英

Android Daydream / DreamService中的广告?

[英]Ads in Android Daydream/DreamService?

有没有人知道任何Android广告SDK是否适用于新的DreamService功能? 我尝试使用AdMob,并首先看到Interstitial类构造函数显式需要一个Activity。 我看到AdView有一个构造函数,只需要一个上下文,所以我尝试了,但得到一个运行时异常告诉我问题是我正在尝试使用除Activity之外的上下文来扩充AdView。 我查看了尝试亚马逊移动广告API,但它看起来与AdMob相同。

我试图发挥创意,从我的DreamService开始创建插页式广告的另一个活动,但它是在DreamService用户界面后创建的(有点理智,因为Daydream覆盖了所有内容)。 有没有人知道在Daydream中使用广告的任何解决方案?

我想出了解决这个问题的东西,尽管我仍然不喜欢这个解决方案。 如果有人知道的话,欢迎采用更优雅的方法。

我所做的是使用mMedia SDK而不是AdMob。 他们的非页内广告和AdView类都可以在构造函数中使用Context而不是Activity。 由于它在Dream叠加层后面打开,因此插页式广告仍然无法解决。 所以我最终做的是在我的Dream的XML布局中添加AdView,然后将其可见性设置为View.GONE,直到我想要显示它。 当我需要显示广告时,我将其设置为View.VISIBLE。

我遇到的另一个问题是,在点击AdView后,它会使用广告的网址启动浏览器,这当然会在Dream背后打开,从而无法展示广告。 所以我最终将Dream设置为交互式,捕获onTouchEvent,然后如果点击发生时广告是可见的,请调用Ad的callOnClick方法。 我还必须将Ad的RequestListener设置为我的Dream Service并实现MMAdOverlayLaunched方法,该方法在广告启动浏览器时调用。 在这个方法中,我只是调用finish()来停止Dream并让浏览器显示广告。

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    // Exit dream upon user touch
    setInteractive(true);
    // Hide system UI
    setFullscreen(true);
    // Set the dream layout
    setContentView(R.layout.dream_layout);
    //Initialize Ads
    this.initAdvertising();
}

private void initAdvertising(){
     MMSDK.initialize(this);
     mDreamAd = (MMAdView) findViewById(R.id.adView);
     //Separate thread will handle showing the ad
     mDreamAd.setVisibility(View.GONE);
     mAdRequest = new MMRequest();
     //TODO add metadata to Request
     mDreamAd.setMMRequest(mAdRequest);
     mDreamAd.setListener(this);
     mDreamAd.getAd();
}

@Override
public boolean dispatchTouchEvent(MotionEvent event){
    super.dispatchTouchEvent(event);
    if(mDreamAd != null && mDreamAd.isShown()){
        mDreamAd.callOnClick();
    }
    return true;
}

@Override
public void MMAdOverlayLaunched(MMAd ad) {
    //Finish so we can display the ad the user has clicked
    if(ad.equals(this.mDreamAd))
        this.finish();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM