Android中<meta-data>的使用

转载地址:http://blog.sina.com.cn/s/blog_74b91ee00100yu0h.html
在AndroidManifest.xml中,元素可以作为子元素,被包含在、 、和元素中,但
不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
xml代码段:

<activity...>
       <meta-data android:name="myMsg" android:value="hello my activity"></meta-data>
</activity>

java代码段:

   ActivityInfo info=this.getPackageManager()
                          .getActivityInfo(getComponentName(),
                          PackageManager.GET_META_DATA);
    String msg=info.metaData.getString("myMsg");
    System.out.println("myMsg:"+msg);

一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的 PackageItemInfo.metaData 字段。一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo 资源中的zoo名字。另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。

2:在application的应用。

xml代码段:

 <application...>
       <meta-data android:value="hello my application" android:name="myMsg"></meta-data>
   </application>

java代码段:

 ApplicationInfo appInfo = this.getPackageManager()
                                  .getApplicationInfo(getPackageName(),
                          PackageManager.GET_META_DATA);
    String msg=appInfo.metaData.getString("myMsg");
    System.out.println("myMsg:"+msg);

3:在service的应用。

xml代码段:

 <service android:name="MetaDataService">
      <meta-data android:value="hello my service" android:name="myMsg"></meta-data>
   </service>

java代码段:

ComponentName cn=new ComponentName(this, MetaDataService.class);
   ServiceInfo info=this.getPackageManager()
                        .getServiceInfo(cn, PackageManager.GET_META_DATA);
    String msg=info.metaData.getString("myMsg");
    System.out.println("myMsg:"+msg);

4: 在receiver的应用。

xml代码段:

  <receiver android:name="MetaDataReceiver">
            <meta-data android:value="hello my receiver" android:name="myMsg"></meta-data>
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE"></action>
            </intent-filter>
    </receiver>

java代码段:

ComponentName cn=new ComponentName(context, MetaDataReceiver.class);
    ActivityInfo info=context.getPackageManager()
                             .getReceiverInfo(cn, PackageManager.GET_META_DATA);
    String msg=info.metaData.getString("myMsg");
    System.out.println("myMsg:"+msg);
### 代码正确性 代码存在错误,`</application></manifest>` 之前缺少 `<application>` 标签的开始标签,并且 `<activity>` 标签没有正确闭合。正确的代码格式应该如下: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.package.name"> <application> <activity> <meta-data android:name="unity.splash-mode" android:value="0" /> <meta-data android:name="unity.splash-enable" android:value="true" /> <meta-data android:name="unity.launch-fullscreen" android:value="true" /> <meta-data android:name="notch.config" android:value="portrait|landscape" /> <meta-data android:name="unity.auto-report-fully-drawn" android:value="true" /> </activity> </application> </manifest> ``` ### 配置作用 - `meta-data android:name="unity.splash-mode" android:value="0"`:此配置项可能用于设置Unity游戏的启动闪屏模式,`value="0"` 表示使用特定的闪屏模式编号为 0 的模式,不同的数值可能对应不同的闪屏显示效果。 - `meta-data android:name="unity.splash-enable" android:value="true"`:用于启用Unity游戏的启动闪屏功能,设置为 `true` 表示在游戏启动时会显示闪屏画面。 - `meta-data android:name="unity.launch-fullscreen" android:value="true"`:设置游戏启动时以全屏模式显示,让游戏占据整个屏幕,提供更好的沉浸式体验。 - `meta-data android:name="notch.config" android:value="portrait|landscape"`:配置游戏对刘海屏的适配策略,`portrait|landscape` 表示游戏在竖屏和横屏模式下都进行刘海屏适配。 - `meta-data android:name="unity.auto-report-fully-drawn" android:value="true"`:可能用于自动报告游戏是否已经完全绘制完成,设置为 `true` 时,Unity会自动向系统报告游戏绘制状态。 ### 如何修改 若要修改这些配置,只需直接编辑 `AndroidManifest.xml` 文件中的对应 `meta-data` 标签的 `android:value` 属性值。例如,若要禁用启动闪屏功能,可将 `android:name="unity.splash-enable"` 的 `android:value` 属性修改为 `"false"`: ```xml <meta-data android:name="unity.splash-enable" android:value="false" /> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值