Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 讀取Manifest文件下Application 等節點下的meta-data自定義數據

Android 讀取Manifest文件下Application 等節點下的meta-data自定義數據

編輯:關於Android編程

介紹

Android在提供了meta-date使用鍵值對的形式實現自定義配置。一般使用中作為渠道標識。可以用在,, , ,節點下。所有的值存儲在同一個Bundle裡面,可以使用 PackageItemInfo.metaData渠道這些數據。

使用形式:


resource 和 value直接用一個即可,但是注意如果使用

那麼得到的是ID值,也就是在R文件裡面的數字,不是實際資源值。而要使用resource來取資源值(使用getInt()獲取)。

android:name:確保是唯一的就OK了。

android:value:值可以是:

1.字符串 使用getString()獲取

2.整數 如“100” 使用getInt()獲取

3.布爾值:“true”,"false" 使用getBoolean()獲取

4.顏色值: "#rgb", "#argb", "#rrggbb", 或者 "#aarrggbb" 使用getInt()獲取

5.浮點值 :“1.2” 使用getFloat()

注意:Bundle中使用的是return (String) o;來獲取的代碼獲取一個StringValue值的,如果你配置的想配置的一個字符串的值是“000”時,但是在將metadata包裝成bundle的時候,"000"被解析成整數0,所以使用getString()獲取的會是null。

實例:

在Manifest節點裡最後加上:
在自定義的Application裡面一個方法:
/**
	 * 獲取Manifest裡面配置的渠道版本
	 * 

2014-11-14

* @return * @author RANDY.ZHANG */ public String getHaiwanVersion() { String channel = ""; try { channel = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA).metaData.getString("HAIWAN_CHANNEL"); } catch (NameNotFoundException e) { e.printStackTrace(); } return channel; }
其他節點:
//在Activity應用元素。
    ActivityInfo info = this.getPackageManager()
            .getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");
 
    //在application應用元素。
    ApplicationInfo appInfo = this.getPackageManager()
            .getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
    appInfo.metaData.getString("meta_name");
 
    //在service應用元素。
    ComponentName cn = new ComponentName(this, MetaDataService.class);
    ServiceInfo info = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");
 
    //在receiver應用元素。
    ComponentName cn = new ComponentName(context, MetaDataReceiver.class);
    ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved