代码从AndroidManifest.xml中获取元数据字符串

欢迎加入全网最大Delphi 技术交流群 682628230

在Delphi开发的Android应用中,有时需要从AndroidManifest.xml文件中读取特定的元数据信息。对于获取位于<manifest>标签下的versionName,可以直接使用包管理器查询。但如果元数据位于<meta-data>标签内,例如在<activity>部分之外定义如下:

<meta-data android:name="productName" android:value="HelloWorld" />

则需要调整代码来正确读取这些值。

读取<meta-data>元数据

要从AndroidManifest.xml中读取名为productName的元数据值,可以使用以下代码:

function GetProductName: string;
var
  PackageManager: JPackageManager;
  AppInfo: JApplicationInfo;
begin
  PackageManager := SharedActivity.getPackageManager;
  // 获取包含<meta-data>信息的应用详情
  AppInfo := PackageManager.getApplicationInfo(
    SharedActivityContext.getPackageName, 
    TJPackageManager.JavaClass.GET_META_DATA
  );
  // 从应用详情中提取指定名称的元数据值
  Result := JStringToString(AppInfo.metaData.getString(StringToJString('productName')));
end;

确保您的<meta-data>标签位于<application>级别而非嵌套在<activity>或其他组件内部。如果<meta-data>被放置在<activity>或其它组件内,则需相应地调整获取方法以定位到具体的组件上下文。

通过上述方法,您可以轻松地从AndroidManifest.xml文件中检索任何自定义的元数据值,为应用提供更多的配置灵活性。这种方法不仅适用于读取简单的字符串值,还可以扩展用于处理更为复杂的元数据结构。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享