2025-02-10

經過瞭一番折騰,忙忙碌碌瞭一下午,終於搞明白瞭Android軟件界面嵌入廣告的方法,以下我以嵌入有米廣告為例小結一下:

步驟一,下載有米廣告SDK,將youmi-android.jar 導入想要嵌入廣告的的工程中。
1. 右鍵您的工程根目錄,選擇“Properties”
2. 在左面板中選擇“Java Build Path”
3. 然後選擇“Libraries”標簽
4. 點擊“Add External JARs„”
5. 選擇youmi-android.jar 的目錄路徑.
6. 點擊“OK”即導入成功
步驟二,在AndroidManifest.xml文件中配置用戶權限。
請務必配置以下權限,否則將有可能獲取不到廣告。
1. android.permission.INTERNET,連接網絡權限INTERNET ,用於請求廣告
2. android.permission.READ_PHONE_STATE,用於精確統計用戶手機的系統信息
3. android.ACCESS_NETWORK_STATE,用於精確識別網絡接入點等信息
4. android.permission.ACCESS_COARSE_LOCATION,有助於精準投放地域廣告以及幫助統計使用應用程序的用戶的地區分佈情況
5. android.permission.WRITE_EXTERNAL_STORAGE,有助於實現圖片資源的緩存,節省流量,並可獲得更好的用戶體驗
請將下面權限配置代碼復制到AndroidManifest.xml 文件中:
<!– 必須申明的權限–>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!– 以下為可選的權限–>
<!– 使用GPS獲取用戶精確定位信息–>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!– 使用WIFI獲取用戶精確定位信息–>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
步驟三,在AndroidManifest.xml中添加AdActivity。
AdActivity是廣告展示的載體,請在AndroidManifest.xml中添加AdActivity:
<activity android:name="net.youmi.android.AdActivity"
       android:configChanges="keyboard|keyboardHidden|orientation"/>
<meta-data android:name="YOUMI_CHANNEL" android:value="0" />
步驟四,初始化賬號信息。
在主Activity的onCreate中調用AdManager.init() 初始化App ID 、App Secret、請求廣告間隔和測試模式等參數(請務必在任意AdView初始化前調用一次)。
//第一個參數為您的應用發佈Id
//第二個參數為您的應用密碼
//第三個參數是請求廣告的間隔,有效的設置值為30至200,單位為秒
//第四個參數是設置測試模式,設置為true時,可以獲取測試廣告,正式發佈請設置此參數為false
AdManager.init(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode);
        !註意:3.04版本開始AdManager.init方法的參數改為五個,加上瞭Context參數!調試階段將測試模式設置為true,請將測試模式設置為false後上傳至網站等待審核。 !未上傳應用安裝包、未通過審核的應用、模擬器運行,都隻能獲得測試廣告,審核通過後,模擬器上依舊是測試廣告,真機才會獲取到正常的廣告。
代碼如下:
@Override
 
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
 
     // 應用Id 應用密碼 廣告請求間隔(s) 測試模式
 
AdManager.init(this,"537ef88653a2993c", "b9e10bcfe994a9fb", 30, true);
 
setContentView(R.layout.main);
 
}
步驟五,使用xml佈局嵌入廣告
1.在res/values 文件夾中添加attrs.xml。如果你沒有添加這個文件,那你將不能在layout 中設置AdView 的屬性。attrs.xml 文件的內容如下:
<?xml version="1.0" encoding="utf-8"?>
 
<resources>
 
<declare-styleable name="net.youmi.android.AdView">
 
<!–廣告背景顏色[隻對文字廣告有效](取值范圍為#000000—-#ffffff) –>
 
<attr name="backgroundColor" format="color" />
 
<!–廣告文本顏色[隻對文字廣告有效](取值范圍為#000000—-#ffffff) –>
 
<attr name="textColor" format="color" />
 
<!–廣告背景透明度[隻對文字廣告有效],默認為255,設置范圍0-255 –>
 
<attr name="backgroundTransparent" format="integer"/>
 
</declare-styleable>
 
</resources> 
2.在佈局main.xml中嵌入有米廣告視圖:
以下為一個實例:
 
<?xml version="1.0" encoding="utf-8"?>
 
<!– 需要設置命名空間:umadsdk –>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
xmlns:umadsdk="http://schemas.android.com/apk/res/com.youmi"
 
android:orientation="vertical"
 
android:layout_width="fill_parent"
 
android:layout_height="fill_parent">
 
<net.youmi.android.AdView
 
android:id="@+id/adView"
 
android:layout_width="fill_parent"
 
android:layout_height="wrap_content"
 
umadsdk:textColor="#ffffff"
 
umadsdk:backgroundColor="#4076AA"
 
umadsdk:backgroundTransparent="155"/>
 
</LinearLayout>
 
註意: xmlns:umadsdk=”http://schemas.android.com/apk/res/您的應用包名” 這句一定要加上,不然編輯器會提示錯誤。
3.XML佈局代碼部分
import net.youmi.android.AdManager;
 
import android.app.Activity;
 
import android.os.Bundle;
 
public class TestAdActivity extends Activity{
 
    /** Called when the activity is first created. */
 
// 應用Id 應用密碼 廣告請求間隔(s) 測試模式
 
@Override
 
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
 
     // 應用Id 應用密碼 廣告請求間隔(s) 測試模式
 
AdManager.init(this,"537ef88653a2993c", "b9e10bcfe994a9fb", 30, true);
 
setContentView(R.layout.main);
 
}
 
}
我的新浪微博(wind瑞):http://weibo.com/tianrui1990
原作者:wind瑞
最後運行結果如下圖所示:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *