我知道可以编辑Android清单组件,例如启用/禁用等。我想在运行时将meta值标签插入到Android清单的应用程序标记中。如何直接编写Android清单文档?
这是我想要直接写入我的应用程序Android清单的字符串:
<meta-data android:name="my_api_key" android:value="mykey124" />
并且它必须在应用程序标签中。
我知道可以编辑Android清单组件,例如启用/禁用等。我想在运行时将meta值标签插入到Android清单的应用程序标记中。如何直接编写Android清单文档?
这是我想要直接写入我的应用程序Android清单的字符串:
<meta-data android:name="my_api_key" android:value="mykey124" />
并且它必须在应用程序标签中。
您不能在运行时编辑清单文件。
如果您需要运行时解决方案,可以尝试其他方式,如共享首选项或可保存值的其他方式。
如果没有,请将其放入清单文件中,以Google Play服务为例:
<application>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
.....
</application>
我知道可能已经晚了,但这个答案可以对其他正在寻找的人有所帮助
首先 前往路径res > values > strings.xml并创建字符串资源
<string name="my_api_key">Your_api_key</string>
然后前往 清单 文件
如果您想在应用程序或活动中添加此元标记,请确保您想要添加的位置。如果要添加到应用程序中,则只需在应用程序标记之后开始;如果要添加到活动中,则在要编写的活动标记之后开始。
<meta-data
android:name="apikey"
android:value="@string/my_api_key" />
try {
ActivityInfo ai = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
if (bundle != null) {
String apiKey = bundle.getString("apikey");
Log.d(this.getClass().getSimpleName(), "apiKey = " + apiKey);
}
}
} catch (PackageManager.NameNotFoundException e) {
Utilities.log(this.getClass().getSimpleName(), "Failed to load meta-data, NameNotFound: " + e.getMessage());
} catch (NullPointerException e) {
Log.e(this.getClass().getSimpleName(), "Failed to load meta-data, NullPointer: " + e.getMessage());
}
ApplicationInfo ai = getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);
只需要返回活动信息。