日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android實現獲取meta-data和build.gradle的值

瀏覽:214日期:2022-09-25 15:25:39

有時候會用到meta-data中的參數,比如定義的渠道號,類似友盟統計。也會用到定義在build.gradle文件中android標簽下的defaultConfig標簽下,添加manifestPlaceholders標簽中,有可能也會用到渠道值。

<meta-data android:name='UMENG_CHANNEL' android:value='0'/>

首先獲取meta-data中的值,直接看方法:

/** * 不同的類型要區別獲取,以下是String類型的 * @param context 上下午 * @param metaName meta-data定義的名字 * @param defaultValue 默認值 * @return */ public static String getAppMetaDataString(Context context, String metaName, String defaultValue) { try { //application標簽下用getApplicationinfo,如果是activity下的用getActivityInfo //Sting類型的用getString,Boolean類型的getBoolean,其他具體看api String value = context.getPackageManager() .getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA) .metaData.getString(metaName, defaultValue); return value; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return defaultValue; } }

獲取build.gradle中的值:

manifestPlaceholders = [JPUSH_PKGNAME : applicationId,JPUSH_APPKEY : 'xxxxxxxxxxxxxxxxx', //JPush上注冊的包名對應的appkey.JPUSH_CHANNEL : 'developer-default', //暫時填寫默認值即可. ]

原理是一樣的,manifestPlaceholders標簽下的值需要在清單文件AndroidManifest.xml中占位顯示,這里占位極光渠道號(ps:不知道極光文檔有沒有直接獲取的):

這里 name 為 名字隨意,不重復就行,value 為manifestPlaceholders下的定義的值,必須采用 ${變量值}

<meta-data android:name='JPUSH_CHANNEL' android:value='${JPUSH_CHANNEL}'/>

同用方法

/** * 獲取MetaData信息 * * @param name * @param def * @return */ public static String getMetaDataValue(Context context, String name, String def) { String value = getMetaDataValue(context, name); return (value == null) ? def : value; } public static String getMetaDataValue(Context context, String name) { Object value = null; PackageManager packageManager = context.getPackageManager(); ApplicationInfo applicationInfo; try { applicationInfo = packageManager.getApplicationInfo( context.getPackageName(), PackageManager.GET_META_DATA); if (applicationInfo != null && applicationInfo.metaData != null) {value = applicationInfo.metaData.get(name); } } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException( 'Could not read the name in the manifest file.', e); } if (value == null) { throw new RuntimeException('The name ’' + name + '’ is not defined in the manifest file’s meta data.'); } return value.toString(); }

所以又回到了上一步,去獲取meta-data中的值了。說到底還是熟不熟悉PackageManager

補充知識:android meta data值獲取的坑

獲取meta data的時候,正常的非純數字的字符串,設置在value里面,用getString獲取是正常的。

但是如果含有純數字的字符串,用getString獲取返回為null。也許你會想到用getInt,getLong獲取,很抱歉,也可能是null。

解決方式有兩種:

一.

繼續使用value='1234567890',但是在純數字字符串開頭加上' '(反斜杠+空格)這樣系統會自動讀取為字符串而不是其他格式,形如

<meta-data android:name='appkey' android:value=' 1234567890' />

二. 使用resources屬性通過getInt獲取資源id,再獲取資源id對應的值,這種方式可擴展性很強,可以獲取所有資源而不只是string,形如

<meta-data android:name='appkey' android:resource='@string/AppKey' />

在strings.xml中定義AppKey的值為

<string name='AppKey'>1234567890</string>

三.Application下獲取meta資源的方式

public static String getStringMetaData(String name) { int valueId = 0; try { ApplicationInfo appInfo = getApplicationContext().getPackageManager().getApplicationInfo(getApplicationContext().getPackageName(), PackageManager.GET_META_DATA); valueId = appInfo.metaData.getInt(name); if (valueId != 0) { return getApplicationContext().getResources().getString(valueId); } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return '';}

以上這篇Android實現獲取meta-data和build.gradle的值就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲国产影院| 国产精品一站二站| 久久久国产精品入口麻豆| 日韩精品久久理论片| 亚洲人妖在线| 日韩国产在线观看| 奇米狠狠一区二区三区| 日本国产一区| 国产香蕉精品| 国产精品麻豆成人av电影艾秋| 91成人在线精品视频| 国产欧美自拍| 国产欧美高清视频在线| 麻豆久久久久久| 国产成人精品亚洲线观看| 国产成人精选| 欧美性感美女一区二区 | 亚洲黄色网址| 精品国产免费人成网站| 99精品视频在线| 99日韩精品| 91欧美极品| 精品国产美女a久久9999| 天堂中文在线播放| 精品在线91| 在线亚洲免费| 国产一级成人av| 日韩成人综合| 石原莉奈一区二区三区在线观看| 91精品日本| 高清精品久久| 国产午夜精品一区二区三区欧美 | 亚洲深夜av| 色8久久久久| 精品国产一级| 偷拍欧美精品| 日韩精品社区| 日韩大片在线播放| 亚洲视频www| 国产精品一线| 亚洲精品一区三区三区在线观看| 免费看精品久久片| 国产精品igao视频网网址不卡日韩| 成人福利av| 综合日韩在线| 四季av一区二区凹凸精品| 香蕉久久夜色精品国产| 精品一区二区三区中文字幕在线| 亚洲精品va| 免费视频一区二区三区在线观看 | 91亚洲国产| 麻豆亚洲精品| 国产在视频一区二区三区吞精| 亚洲激情不卡| 欧美91在线| 先锋影音国产一区| 精品久久电影| 免费观看在线综合| 国产精品精品| 日韩影片在线观看| 亚洲精品福利电影| 亚洲日产国产精品| 久久久9色精品国产一区二区三区| 亚洲日本欧美| 日韩精品一区二区三区免费观影| 自拍自偷一区二区三区| 日韩综合在线| 国产三级一区| 视频一区在线播放| 欧美香蕉视频| 国产精品视频一区二区三区四蜜臂 | 亚洲a级精品| 香蕉成人av| 欧美永久精品| 国产精品视区| 欧美日韩精品免费观看视欧美高清免费大片 | 精品视频一区二区三区四区五区| 午夜亚洲精品| 日韩欧美综合| 久久超碰99| 日韩综合一区二区三区| 久久伦理在线| 日本久久精品| 国产精品一区三区在线观看| 亚洲一区欧美激情| 日韩毛片在线| 电影91久久久| 国产精品一区亚洲| 日韩精品中文字幕一区二区| 亚洲主播在线| 久久国产成人午夜av影院宅| 精品视频一区二区三区四区五区 | 日韩一区二区三区在线看| 婷婷成人在线| 日本综合字幕| а√在线中文在线新版| 麻豆高清免费国产一区| 日韩久久99| 亚洲一区有码| 久久国产福利| 日韩午夜电影| 欧美日韩国产亚洲一区| 久久中文亚洲字幕| 欧美日韩免费观看视频| 精品国产91| 九九久久国产| 老司机精品在线| 国产精品一区二区精品视频观看| 日本综合视频| 中文字幕亚洲影视| 久久av在线| 国产视频久久| 亚洲一卡久久| 美女精品在线| 亚洲制服一区| 视频精品一区| 日韩欧美高清一区二区三区| 亚洲精品乱码| 日本少妇一区二区| 国产精品一线天粉嫩av| 国产精品magnet| 久久av影院| 国产精品一线天粉嫩av| 国产精品极品在线观看| 国产精品久久久免费| 国产精品久久国产愉拍| 国产精品一区二区美女视频免费看| 国产欧美日韩精品高清二区综合区| 国产精品一二| 国产在线日韩精品| 日韩福利一区| 偷拍欧美精品| 最新国产精品| 国产乱码精品一区二区三区四区 | 91成人在线网站| 国产色噜噜噜91在线精品| 美女视频黄久久| 国产粉嫩在线观看| 久久蜜桃精品| 日韩一区二区免费看| 欧美专区18| 欧美亚洲免费| 国产在线一区不卡| 99视频精品全国免费| 婷婷综合激情| 亚洲精品高潮| 久久不见久久见中文字幕免费| 成人在线免费观看91| 久久久久免费av| 日韩精品一级中文字幕精品视频免费观看| 中文字幕av一区二区三区人| 国产精品国产三级在线观看| av最新在线| 在线综合欧美| 日韩av中文字幕一区二区三区| 久久精品亚洲一区二区| 亚洲成av在线| 中文无码日韩欧| 国产精品videosex极品| av在线资源| 久久亚洲电影| 久久福利在线| 午夜久久福利| 国产美女精品视频免费播放软件| 日韩免费av| 蜜臀国产一区二区三区在线播放| 国产精品高清一区二区| 久久久一本精品| 免费一级片91| 国产一区二区三区四区五区| 在线亚洲观看| 麻豆久久一区| 婷婷激情综合| 国产精品白浆| 久久久久久黄| 日韩av在线免费观看不卡| 黄色aa久久| 蜜桃久久av一区| 精品伊人久久久| 国产一区导航| 国产a亚洲精品| 伊人国产精品| 国产欧美一区二区三区精品酒店| 亚洲伊人精品酒店| 福利在线一区| 日本在线视频一区二区| 欧产日产国产精品视频| 香蕉久久一区| 亚洲高清av| 欧美午夜三级| 精品在线播放| 精品日产乱码久久久久久仙踪林| 日韩午夜在线| 国产suv精品一区二区四区视频 | 国产91久久精品一区二区| 久久精品99国产精品| 国产99久久久国产精品成人免费| 国产精品**亚洲精品| 久久亚洲国产精品一区二区| 毛片在线网站|