Files
MinFt/Client/Assets/Plugins/Android/MetaDataReader.java
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

80 lines
2.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.unity.plugin;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
/**
* Unity 安卓插件 - meta-data 读取工具类
* 支持读取 application 节点下的 meta-data兼容多类型值
*/
public class MetaDataReader {
// 日志标签方便Logcat调试
private static final String TAG = "Unity-MetaDataReader";
// PackageManager标记获取meta-data固定值Android原生常量
private static final int GET_META_DATA = PackageManager.GET_META_DATA;
// 上下文对象Android核心所有资源/配置读取都依赖)
private final Context mContext;
/**
* 构造方法传入ContextUnity中传入currentActivity即可
* @param context 上下文Activity/Application均可
*/
public MetaDataReader(Context context) {
this.mContext = context;
}
// ------------------------ 读取 Application 节点下的 meta-data ------------------------
/**
* 读取application节点 - 字符串值
* @param metaName android:name 属性值
* @return 对应value未找到返回null
*/
public String getAppMetaDataString(String metaName) {
Bundle metaData = getAppMetaDataBundle();
return metaData == null ? null : metaData.getString(metaName);
}
/**
* 读取application节点 - 整型值
* @param metaName android:name 属性值
* @param defValue 未找到/类型错误的默认值
* @return 对应value或默认值
*/
public int getAppMetaDataInt(String metaName, int defValue) {
Bundle metaData = getAppMetaDataBundle();
return metaData == null ? defValue : metaData.getInt(metaName, defValue);
}
/**
* 读取application节点 - 布尔型值
* @param metaName android:name 属性值
* @param defValue 未找到/类型错误的默认值
* @return 对应value或默认值
*/
public boolean getAppMetaDataBoolean(String metaName, boolean defValue) {
Bundle metaData = getAppMetaDataBundle();
return metaData == null ? defValue : metaData.getBoolean(metaName, defValue);
}
// ------------------------ 核心私有工具方法获取meta-data的Bundle对象 ------------------------
/**
* 获取Application节点的meta-data Bundle
* ApplicationInfo.metaData 直接存储全局meta-data
*/
private Bundle getAppMetaDataBundle() {
try {
ApplicationInfo appInfo = mContext.getPackageManager()
.getApplicationInfo(mContext.getPackageName(), GET_META_DATA);
return appInfo != null ? appInfo.metaData : null;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
}