Java 如何以编程方式填充AndroidManifest元数据值?
据我所知,Java 如何以编程方式填充AndroidManifest元数据值?,java,android,xml,android-intent,android-manifest,Java,Android,Xml,Android Intent,Android Manifest,据我所知,AndroidManifest.xml是在编译时准备的,而不是在运行时准备的,是否有其他方法可以在不依赖硬编码字符串的情况下填充清单中的元数据?也许在编译时以某种方式填充它 我目前在我的AndroidManifest.xml上有以下内容 <application android:allowBackup="true" android:icon="@drawable/dt_icon" android:label="@string/app_name" a
AndroidManifest.xml
是在编译时准备的,而不是在运行时准备的,是否有其他方法可以在不依赖硬编码字符串的情况下填充清单中的元数据?也许在编译时以某种方式填充它
我目前在我的AndroidManifest.xml上有以下内容
<application
android:allowBackup="true"
android:icon="@drawable/dt_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="DataPath"
android:value=""
/> ...
...
我不想硬编码该值,而是用以下结果填充它:
Environment.getExternalStorageDirectory()
另一个应用程序稍后将利用ApplicationInfo
的元数据属性检索DataPath
的值
我相信我在某个地方读到过,它可以在编译时赋值,但仍然不能硬编码
您所能做的最好是通过gradle分配一个值
例如:
android {
defaultConfig {
manifestPlaceholders = [hostName:"www.example.com"]
}
...
}
<intent-filter ... >
<data android:scheme="http" android:host="${hostName}" ... />
...
</intent-filter>
android{
默认配置{
manifestPlaceholders=[主机名:“www.example.com”]
}
...
}
...
我认为您无法在运行时更改元数据值@Shubham的可能副本我写的第一句话“我知道AndroidManifest.xml是在编译时准备的,而不是在运行时。”我正在寻找另一种方法,我相信我在某个地方读到,可以在编译时分配值,但仍然不能硬编码它。。。