日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android 读取manifest的数据

發(fā)布時(shí)間:2024/4/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 读取manifest的数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? 今天,是實(shí)在不知道該寫點(diǎn)什么,但是還是想保持寫博客的習(xí)慣,所以在網(wǎng)上找了找資料,于是寫了這篇博客。內(nèi)容很簡(jiǎn)單,大家如果有興趣,可以自己在網(wǎng)上搜索相關(guān)的資料。


在AndroidManifest.xml清單文件中 我們有時(shí)會(huì)看到如下類似的<meta-data ... >元素開始的配置內(nèi)容:

<meta-dataandroid:name="com.google.android.maps.v2.API_KEY"android:value="AIzaSyBhBFOgVQclaa8p1JJeqaZHiCo2nfiyBBo" /> <meta-dataandroid:name="com.google.android.gms.version"android:value="@integer/google_play_services_version" />


標(biāo)簽<meta-data>是提供組件額外的數(shù)據(jù)用的,它本身就是一個(gè)鍵值對(duì),可以自定義名稱和值。它可以包含在以下組件當(dāng)中:
<activity>、<application> 、<service> 和 <receiver>

一、如何配置<mate-data...>元素:

標(biāo)簽<meta-data>元素的配置語(yǔ)法如下:

<meta-data android:name="string"android:resource="resource specification"android:value="string" />


說明:一般的值可以通過value屬性來指定,但是如果要指定一個(gè)資源的id,則需要使用resource屬性來配置。

<meta-data android:name="api_key" android:value="@string/api_key" />


二、如何獲取<mate-data...>元素配置的值

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.metadatatest"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="8" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><meta-data android:name="mTag" android:value="@string/meta_application"></meta-data><activityandroid:name="com.example.metadatatest.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!-- 一般的值可以通過value屬性來指定,但是如果要指定一個(gè)資源id作為一個(gè)值,那么就要用resource屬性來代替。 --><meta-data android:name="mTag" android:value="@string/meta_activity"></meta-data><!--利用resource屬性將指定 mResource 的資源id號(hào)--><meta-data android:name="mResource" android:resource="@drawable/ic_launcher"></meta-data></activity><service android:name="com.example.metadatatest.service.DemoService"><meta-data android:name="mTag" android:value="@string/meta_service"></meta-data></service><receiver android:name="com.example.metadatatest.receiver.DemoReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter><meta-data android:name="mTag" android:value="@string/meta_broadcast"></meta-data></receiver></application></manifest>


在activity里獲取manifest的mata元素的值


package com.example.metadatatest;import com.example.metadatatest.receiver.DemoReceiver; import com.example.metadatatest.service.DemoService; import android.app.Activity; import android.content.ComponentName; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ServiceInfo; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView;public class MainActivity extends Activity implements OnClickListener {private static final String TAG = MainActivity.class.getSimpleName();private ImageView iv_pic;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findView();}private void findView() {Button bt_read_activity = (Button) findViewById(R.id.bt_read_activity);Button bt_read_service = (Button) findViewById(R.id.bt_read_service);Button bt_read_broadcast = (Button) findViewById(R.id.bt_read_broadcast);Button bt_read_application = (Button) findViewById(R.id.bt_read_application);iv_pic = (ImageView) findViewById(R.id.iv_pic);bt_read_activity.setOnClickListener(this);bt_read_service.setOnClickListener(this);bt_read_broadcast.setOnClickListener(this);bt_read_application.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.bt_read_activity:readMetaDataFromActivity();break;case R.id.bt_read_service:readMetaDataFromService();break;case R.id.bt_read_broadcast:readMetaDataFromBroadCast();break;case R.id.bt_read_application:readMetaDataFromApplication();break;default:break;}}/*** 讀取application 節(jié)點(diǎn) meta-data 信息*/private void readMetaDataFromApplication() {try {ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);String mTag = appInfo.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 讀取BroadcastReceiver 節(jié)點(diǎn) meta-data 信息*/private void readMetaDataFromBroadCast() {try {ComponentName cn = new ComponentName(this, DemoReceiver.class);ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 讀取Service 節(jié)點(diǎn) meta-data 信息*/private void readMetaDataFromService() {try {ComponentName cn = new ComponentName(this, DemoService.class);ServiceInfo info = this.getPackageManager().getServiceInfo(cn,PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 讀取Activity 節(jié)點(diǎn) meta-data 信息*/private void readMetaDataFromActivity() {ActivityInfo info;try {info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);//讀取圖片資源idint mResource = info.metaData.getInt("mResource");iv_pic.setImageResource(mResource);} catch (NameNotFoundException e) {e.printStackTrace();}}}



以上是我把搜集的資料整理出來的內(nèi)容,寫得比較雜亂,所以大家看不懂可以自己在網(wǎng)上搜索資料看一下。


android 讀取manifest的數(shù)據(jù)就講完了。


就這么簡(jiǎn)單。






















































總結(jié)

以上是生活随笔為你收集整理的android 读取manifest的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。