簡體   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