`
endual
  • 浏览: 3498086 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AndroidManifest.xml中使用Meta-Data

 
阅读更多

 有时候你有这方面的需要,建立了一些app-wide配置信息在一个android应用程序或需要创建一个类,可以用于多个项目的设置与一个通用的方式配置的价值观。这是特别有用的API钥匙,为事物像在程序可能会不同,但应该是可访问在同样的方式。有几种方法来做这件事,但我是来更喜欢是加入一个元数据节点在AndroidManifest.xml文件。

       这一领域可以用来储存一个布尔值、浮动,智力,或字符串,以后访问的数据类型为你束方法(例如,getInt())。这里是一个例子,如何定义有价值的AndroidManifest.xml:

Java代码:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

  3. package="com.example.readmetadata"

  4. android:versionCode="1"

  5. android:versionName="1.0">

  6. <application android:icon="@drawable/icon" android:label="@string/app_name">

  7. <activity android:name=".MainMenu" android:label="@string/app_name">

  8. <intent-filter>

  9. <action android:name="android.intent.action.MAIN" />

  10. <category android:name="android.intent.category.LAUNCHER" />

  11. </intent-filter>

  12. </activity>

  13. <meta-data android:name="my_api_key" android:value="mykey123" />

  14. </application>

  15. <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />

  16. </manifest>
复制代码


       阅读这篇文章的元数据只需要几行Java:

Java代码:

  1. try {

  2. ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);

  3. Bundle bundle = ai.metaData;

  4. String myApiKey = bundle.getString("my_api_key");

  5. } catch (NameNotFoundException e) {

  6. Log.e(TAG, "Failed to load meta-data, NameNotFound: " + e.getMessage());

  7. } catch (NullPointerException e) {

  8. Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());

  9. }
复制代码


        ContextWrapper活动延伸,它有一个getPackageManager()方法。 方法的作用是:返回的,这是用于PackageManagerApplicationInfo,传球包名和元数据国旗。 返回的ApplicationInfo包含一个字段、元数据,这是一束所包含的所有元数据。第4行取一个字符串,是相同的:名称“参数”机器人在XML

       那听起来比看上去的复杂,它确实是。基本上,如果你有一个活动,你可以拿你的维管束,元数据从AndroidManifest并使用它在整个应用程序。本人只理解这么些,希望高手多多的指教。这样我也可以更快的进步,进而缩小我和高手的差距。在这里谢谢武林高手了。

分享到:
评论

相关推荐

    Androidmanifest.xml文件分析

    AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的...

    Android实现获取meta-data和build.gradle的值

    有时候会用到meta-data中的参数,比如定义的渠道号,类似友盟统计。也会用到定义在build.gradle文件中android标签下的defaultConfig标签下,添加manifestPlaceholders标签中,有可能也会用到渠道值。 &lt;meta-data...

    XposedBridgeApi-82.jar

    AndroidManifest.xml &lt;meta-data android:name="xposedmodule" android:value="true" /&gt; &lt;meta-data android:name="xposeddescription" android:value="..." /&gt; &lt;meta-data android:name=...

    proxycomponent:实现Android Activity的代理机制,可以实现:1. 在AndroidManifest.xml中仅声明一个代理Activity,即可打开多个被代理Activity 2. 被代理Activity可以动态更新,即使用DexClassLoader加载

    简介实现Android Activity的代理机制,可以实现:在AndroidManifest.xml中仅声明一个代理Activity,即可打开多个被代理Activity被代理Activity可以动态更新,即使用DexClassLoader加载的Activity使用方法原派生于...

    Android获取清单文件中的meta-data,解决碰到数值为null的问题

    在AndroidManifest.xml中,元素可以作为子元素,被包在activity、application 、service、或者receiver元素中,不同的父元素,在应用时读取的方法也不同。 在activity中: ActivityInfo info = null; try { info...

    Android Manifest中meta-data扩展元素数据的配置与获取方式

    在AndroidManifest.xml清单文件中 我们有时会看到如下类似的&lt;meta-data … &gt;元素开始的配置内容: &lt;meta-data android:name=com.google.android.maps.v2.API_KEY android:value=AIzaSyBhBFOgVQclaa8p1...

    google play services 总包

    AndroidManifest.xml &lt;meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /&gt; google_play_services_version = 版本号 比如: version = ...

    android定位功能开发

    这是一个基于android的定位工具。它是基于百度地图的sdk开发的,用的...由于百度地图API的使用要ak秘钥,秘钥的申请要有SHA1以及包名,所以请各位自行申请,然后把秘钥输入到AndroidManifest.xml里面的meta-data里面。

    PackageManagerUtil.java

    1. 获取AndroidManifest中指定的meta-data字符串 2. 获取AndroidManifest中指定的meta-data整形值 3. 获取AndroidManifest中指定版本号整形值 4. 获取AndroidManifest中指定的版本号名字符串 5. 收集设备参数信息,...

    BaiduMap_AndroidSDK Sample_demo

    使用百度SDK时,应用的AndroidManifest.xml主要需要注意以下三项: 4.1、权限 不同的功能需要申请不同的权限,因此在实际使用时,最好参考百度的SDK文档。 其次,在Android 6.0以后引入了运行时权限,因此有些...

    abilityshell_ide_java.jar

    2. 在AndroidManifest.xml中,向根节点下增加。 &lt;uses-feature android:name="zidane.software.ability" android:required="false" /&gt; 3. 向application节点下新增子节点。 &lt;meta-data android:name="permZA...

    phonegap/cordova 3.3百度云推送、条码扫描源码

    打开AndroidManifest.xml,将百度开发者中心api_key复制value后的引号中。 &lt;meta-data android:name="api_key" android:value="" /&gt; 打开www下的index.html文件,把api_key替掉为开者中心api_key的值 ...

    Tracking-System 基于移动互联网的速递物流跟踪系统eciliplse+Android studioweb服务器

    android端引用了百度地图,在使用Android studio调试安装时,请自己申请key 申请入口,否则无法使用地图,然后修改AndroidManifest.xml中的key码** &lt;meta-data android:name=...

    apktool documentation

    original = META-INF folder / AndroidManifest.xml, which are needed to retain the signature of apks to prevent needing to resign. Used with -c / --copy-original on [b]uild unknown = Files / folders ...

    Glide:基于glide进行一部分简易封装及初始化等, 更易于开发者使用

    Glide 基于进行一部分简易封装及初始化等, 更易于开发者使用. 如要了解功能实现,请运行app程序...AndroidManifest.xml // 添加meta-data部分,Glide才能正确初始化 &lt;meta-data android:name="com.acmenxd.gli

    global_1.rar

    在AndroidManifest.xml修改为自己的密钥即可用 &lt;meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="自己的密钥" &gt; &lt;/meta-data&gt;

    安卓自动打包

    &lt;meta-data android:name="UMENG_CHANNEL" android:value="debug" /&gt; 然后执行: ant auto-release -DUMENG_CHANNEL=googlePlayStore 即会把AndroidManifest.xml中的友盟渠道替换成googlePlayStore,然后打包。而...

    Android Studio多渠道打包的配置方法

    按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: &lt;meta-data android:value=Channel ID android:name=UMENG_CHANNEL/&gt; 上面的value值Channel_ID就是渠道标识。我们的期望的就是...

    Android Studio多渠道打包套路

    按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: &lt;meta-data android:value=Channel ID android:name=UMENG_CHANNEL/&gt;  上面的value值Channel_ID就是渠道标识。我们的期望的...

    Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法

    一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 &lt;meta-data android:name=com.baidu.lbsapi.API_KEY android:value=D9Lh8MrrLMUuXdWMU8tRLtDsta6PoaYN /&gt; 但是,有些同学会...

Global site tag (gtag.js) - Google Analytics