Android中Manifest文件``標籤的使用

介紹

在android開發中,我們經常會需要去接入其它的第三方SDK,於是我們經常會在他們的SDK文檔中看到這麼一個東西,它就是<meta-data name="key" value= "value">,這樣的標籤用來存儲一些申請到SDK的key值,下面我們就具體看看這個標籤中所存儲的值究竟是怎樣來讀取的。


<application>標籤中的使用

<meta-data>標籤放在application下的時候:

try {
            ApplicationInfo applicationInfo =getPackageManager().getApplicationInfo("pkgName", PackageManager.GET_META_DATA);
            String value = applicationInfo.metaData.getString("key");
} catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
}

<activity>標籤中的使用

<meta-data>標籤放在activity下的時候:

 try {
            ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
            String value = activityInfo.metaData.getString("key");
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

<recevier>標籤中的使用

<meta-data>標籤放在recevier下的時候:

 try {
            ActivityInfo activityInfo = getPackageManager().getReceiverInfo(getComponentName(), PackageManager.GET_META_DATA);
            String value = activityInfo.metaData.getString("key");
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

<service>標籤中的使用

<meta-data>標籤放在service下的時候:

 try {
 ComponentName cn=new ComponentName(this, MetaDataService.class);  
            ServiceInfo info=this.getPackageManager()  
                     .getServiceInfo(cn, PackageManager.GET_META_DATA);  
            String value = activityInfo.metaData.getString("key");
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

以上就是在四種場景中使用的方式,但是有一個問題是需要注意的,你<meta-data>中設置的是什麼類型的值,你在activity.metaDat中就需要使用什麼樣的方式來拿到這個值,例如:我<meta-data>中放入的是int類型的值,那麼我在取值的時候就需要使用getInt(“key”)的方式來獲取值,如果使用其它的方法來獲取這個值的話,就算你的key傳入的是對的,那麼返回給你的也只是null,所以千萬要切記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章