美文网首页
[AS3.0.1]meta-data和manifestPlace

[AS3.0.1]meta-data和manifestPlace

作者: 小南2017 | 来源:发表于2018-01-13 22:40 被阅读0次

    一篇关于meta-data的转载记录


    • application下

    <application ... >
        <meta-data android:name="TEST_KEY" android:value="${test_key}"/>
    </application>
    
            try {
                ApplicationInfo info = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
                Log.e("info", info.metaData.getString("TEST_KEY"));
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
    

    • activity下

    <activity ... >
        <meta-data android:name="TEST_KEY" android:value="${test_key}"/>
    </activity>
    
            try {
                ActivityInfo info = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
                Log.e("info", info.metaData.getString("TEST_KEY"));
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
    

    • service下

    <service ... >
        <meta-data android:name="TEST_KEY" android:value="${test_key}"/>
    </service>
    
            try {
                ServiceInfo info = getPackageManager().getServiceInfo(getComponentName(), PackageManager.GET_META_DATA);
                Log.e("info", info.metaData.getString("TEST_KEY"));
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
    

    • receiver下

    <receiver ... >
        <meta-data android:name="TEST_KEY" android:value="${test_key}"/>
    </receiver>
    
            try {
                ActivityInfo info = getPackageManager().getReceiverInfo(getComponentName(), PackageManager.GET_META_DATA);
                Log.e("info", info.metaData.getString("TEST_KEY"));
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
    

    manifestPlaceholders使用

    在build.gradle的多版本中设置

                manifestPlaceholders = ["test_key": "修改的内容"]
    

    好比如下

        productFlavors{
            dev{
                manifestPlaceholders = ["test_key": "测试版key"]
            }
            free{
                applicationIdSuffix ".free"
                manifestPlaceholders = ["test_key": "Free版key"]
            }
        }
    

    效果如下


    测试 Free

    资料

    Android获取Manifest中<meta-data>元素的值

    使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中<meta-data>变量的值

    相关文章

      网友评论

          本文标题:[AS3.0.1]meta-data和manifestPlace

          本文链接:https://www.haomeiwen.com/subject/wwyhoxtx.html