You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码获取AndroidManifest中activity内的meta-data字段?

获取AndroidManifest中Activity节点下的meta-data字段

要获取Activity节点下<meta-data>中的值,你需要通过JActivityInfo读取,而非原代码里的JPackageInfo,具体修改后的代码如下:

function GetActivityMetaData(const AMetaDataName: string): string;
var
  PackageManager: JPackageManager;
  ComponentName: JComponentName;
  ActivityInfo: JActivityInfo;
Begin
  Result := '';
  // 获取包管理器实例
  PackageManager := SharedActivity.getPackageManager;
  // 获取当前Activity的组件标识
  ComponentName := SharedActivity.getComponentName;
  // 读取包含meta-data的Activity信息
  ActivityInfo := PackageManager.getActivityInfo(ComponentName, TJPackageManager.JavaClass.GET_META_DATA);
  
  if Assigned(ActivityInfo.metaData) then
  begin
    if ActivityInfo.metaData.containsKey(TJString.JavaClass.valueOf(AMetaDataName)) then
    begin
      Result := JStringToString(ActivityInfo.metaData.getString(TJString.JavaClass.valueOf(AMetaDataName)));
    end;
  end;
End;

// 调用示例:获取productName的值
var
  ProductName: string;
begin
  ProductName := GetActivityMetaData('productName');
end;

关键说明

  • 通过SharedActivity.getComponentName()定位目标Activity节点,确保读取的是当前Activity下的meta-data
  • 使用GET_META_DATA标记告知包管理器需要读取meta-data内容
  • 增加空值判断,避免因meta-data不存在或键名错误导致的异常

内容的提问来源于stack exchange,提问作者NicoBlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:35:34