Android使用元數(shù)據(jù)實現(xiàn)配置信息的傳遞方法詳細(xì)介紹
前序
格式
<meta-data android:name="weather" android:value="xxx"/>
什么場景需要使用?
使用第三方SDK,需要在APP應(yīng)用內(nèi)使用別的APP的整合包,如使用微信登錄、某某地圖等。
一、在代碼中獲取元數(shù)據(jù)
在java代碼中,獲取元數(shù)據(jù)信息的步驟分為下列三步:
- 調(diào)用getPackageManager方法獲得當(dāng)前應(yīng)用的包管理器;
- 調(diào)用包管理器的getActivityInfo方法獲得當(dāng)前活動的信息對象;
- 活動信息對象的metaData是Bundle包裹類型,調(diào)用包裹對象的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類
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)前的活動信息 ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); //獲取活動附加的元數(shù)據(jù)信息 Bundle bundle = info.metaData; String weather = bundle.getString("weather"); tv_meta.setText(weather); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } }
運行結(jié)果
二、給應(yīng)用頁面注冊快捷方式
元數(shù)據(jù)不僅能傳遞簡單的字符串參數(shù),還能傳送更復(fù)雜的資源數(shù)據(jù),如支付寶的快捷式菜單。
利用元數(shù)據(jù)配置快捷菜單
元數(shù)據(jù)的meta-data標(biāo)簽除了前面的name屬性和value屬性,還擁有resource屬性,該屬性可指定一個XML文件,表示元數(shù)據(jù)想要的復(fù)雜信息保存于XML數(shù)據(jù)之中。
利用元數(shù)據(jù)配置快捷菜單的步驟如下:
- 在res/values/strings.xml添加各個菜單項名稱的字符串配置
- 創(chuàng)建res/xml/shortcuts.xml,在該文件中填入各組菜單項的快捷方式定義。
- 給activity節(jié)點注冊元數(shù)據(jù)的快捷菜單配置。
例:長按應(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"> <!--文字太長則顯示shotLabel ↑--> <!--點擊選項跳轉(zhuǎn)到的頁面 ↓--> <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>
運行結(jié)果:長按出現(xiàn)快捷菜單
到此這篇關(guān)于Android使用元數(shù)據(jù)實現(xiàn)配置信息的傳遞方法詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Android傳遞配置信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android使用RSA加密實現(xiàn)接口調(diào)用時的校驗功能
這篇文章主要介紹了Android+Java使用RSA加密實現(xiàn)接口調(diào)用時的校驗功能,幫助大家更好的利用Android進(jìn)行開發(fā),感興趣的朋友可以了解下2020-12-12Android 自定義組件衛(wèi)星菜單的實現(xiàn)
這篇文章主要介紹了Android 自定義組件衛(wèi)星菜單的實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-07-07Android利用Dom對XML進(jìn)行增刪改查操作詳解
使用DOM進(jìn)行增刪改查,這個是DOM的優(yōu)勢所在,其實代碼很簡單,不需要過多的解釋,下面這篇文章主要給大家介紹了關(guān)于Android利用Dom對XML進(jìn)行增刪改查操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺訂單支付API設(shè)計)
這篇文章主要介紹了Android 支付寶支付、微信支付、銀聯(lián)支付 整合第三方支付接入方法(后臺訂單支付API設(shè)計)的相關(guān)資料,需要的朋友可以參考下2016-11-11