Android使用元數(shù)據(jù)實(shí)現(xiàn)配置信息的傳遞方法詳細(xì)介紹
前序
格式
<meta-data android:name="weather" android:value="xxx"/>
什么場(chǎng)景需要使用?
使用第三方SDK,需要在APP應(yīng)用內(nèi)使用別的APP的整合包,如使用微信登錄、某某地圖等。
一、在代碼中獲取元數(shù)據(jù)
在java代碼中,獲取元數(shù)據(jù)信息的步驟分為下列三步:
- 調(diào)用getPackageManager方法獲得當(dāng)前應(yīng)用的包管理器;
- 調(diào)用包管理器的getActivityInfo方法獲得當(dāng)前活動(dòng)的信息對(duì)象;
- 活動(dòng)信息對(duì)象的metaData是Bundle包裹類(lèi)型,調(diào)用包裹對(duì)象的getString即可獲得指定名稱的參數(shù)值。
例:從清單文件中獲取元數(shù)據(jù)并顯示到屏幕上
清單文件
<activity android:name=".MetaDataActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="weather" android:value="xxx"/> </activity>
xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_meta" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
java類(lèi)
public class MetaDataActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_meta_data); TextView tv_meta = findViewById(R.id.tv_meta); //獲取應(yīng)用包管理器 PackageManager pm = getPackageManager(); try { //從應(yīng)用包管理器中獲取當(dāng)前的活動(dòng)信息 ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); //獲取活動(dòng)附加的元數(shù)據(jù)信息 Bundle bundle = info.metaData; String weather = bundle.getString("weather"); tv_meta.setText(weather); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } }
運(yùn)行結(jié)果
二、給應(yīng)用頁(yè)面注冊(cè)快捷方式
元數(shù)據(jù)不僅能傳遞簡(jiǎn)單的字符串參數(shù),還能傳送更復(fù)雜的資源數(shù)據(jù),如支付寶的快捷式菜單。
利用元數(shù)據(jù)配置快捷菜單
元數(shù)據(jù)的meta-data標(biāo)簽除了前面的name屬性和value屬性,還擁有resource屬性,該屬性可指定一個(gè)XML文件,表示元數(shù)據(jù)想要的復(fù)雜信息保存于XML數(shù)據(jù)之中。
利用元數(shù)據(jù)配置快捷菜單的步驟如下:
- 在res/values/strings.xml添加各個(gè)菜單項(xiàng)名稱的字符串配置
- 創(chuàng)建res/xml/shortcuts.xml,在該文件中填入各組菜單項(xiàng)的快捷方式定義。
- 給activity節(jié)點(diǎn)注冊(cè)元數(shù)據(jù)的快捷菜單配置。
例:長(zhǎng)按應(yīng)用出現(xiàn)快捷菜單
清單文件AndroidManifest.xml
<activity android:name=".ActStartActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/> </activity>
新建shortcuts.xml文件用于配置快捷菜單
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="first" android:enabled="true" android:icon="@mipmap/ic_launcher" android:shortcutLongLabel="@string/first_long" android:shortcutShortLabel="@string/first_short"> <!--文字太長(zhǎng)則顯示shotLabel ↑--> <!--點(diǎn)擊選項(xiàng)跳轉(zhuǎn)到的頁(yè)面 ↓--> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.chapter2" android:targetClass="com.example.chapter2.ActStartActivity"/> <categories android:name="android.shortcut.conversation"/> </shortcut> </resources>
運(yùn)行結(jié)果:長(zhǎng)按出現(xiàn)快捷菜單
到此這篇關(guān)于Android使用元數(shù)據(jù)實(shí)現(xiàn)配置信息的傳遞方法詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Android傳遞配置信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android BitmapUtils工具類(lèi)使用詳解
這篇文章主要為大家詳細(xì)介紹了Android BitmapUtils工具類(lèi)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07基于SurfaceView實(shí)現(xiàn)可拖動(dòng)視頻控件
這篇文章主要為大家詳細(xì)介紹了基于SurfaceView的可拖動(dòng)視頻控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Android使用RSA加密實(shí)現(xiàn)接口調(diào)用時(shí)的校驗(yàn)功能
這篇文章主要介紹了Android+Java使用RSA加密實(shí)現(xiàn)接口調(diào)用時(shí)的校驗(yàn)功能,幫助大家更好的利用Android進(jìn)行開(kāi)發(fā),感興趣的朋友可以了解下2020-12-12Android 自定義組件衛(wèi)星菜單的實(shí)現(xiàn)
這篇文章主要介紹了Android 自定義組件衛(wèi)星菜單的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-07-07Android利用Dom對(duì)XML進(jìn)行增刪改查操作詳解
使用DOM進(jìn)行增刪改查,這個(gè)是DOM的優(yōu)勢(shì)所在,其實(shí)代碼很簡(jiǎn)單,不需要過(guò)多的解釋,下面這篇文章主要給大家介紹了關(guān)于Android利用Dom對(duì)XML進(jìn)行增刪改查操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺(tái)訂單支付API設(shè)計(jì))
這篇文章主要介紹了Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺(tái)訂單支付API設(shè)計(jì))的相關(guān)資料,需要的朋友可以參考下2016-11-11Android編程中的5種數(shù)據(jù)存儲(chǔ)方式
這篇文章主要介紹了Android編程中的5種數(shù)據(jù)存儲(chǔ)方式,結(jié)合實(shí)例形式詳細(xì)分析了Android實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的5中實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12android獲取當(dāng)前手機(jī)號(hào)示例程序
這篇文章主要介紹了android如何獲取當(dāng)前手機(jī)號(hào)的方法,大家參考使用吧2013-11-11Android自定義實(shí)現(xiàn)淘寶下拉刷新效果
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)淘寶下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12