# 插件上下文(MTPluginContext)
插件上下文会在大部分接口初始化时作为参数传入,通过插件上下文可以获取当前插件ID、版本信息、配置文件、当前语言环境、资源文件输入流等内容,还可以输出日志、记录错误信息等。
# 获取插件信息
/**
* 获取插件ID
*/
String getPluginId();
/**
* 获取插件版本号
*/
int getPluginVersionCode();
/**
* 获取插件版本名称
*/
String getPluginVersionName();
# 获取配置文件
/**
* 配置数据,可以自由增删查改,当卸载插件时数据会被删除
*/
SharedPreferences getPreferences();
其中 SharedPreferences 是 Android 原有的接口,用法完全一样。
# 例子
SharedPreferences preferences = context.getPreferences();
// 获取配置信息
int i = preferences.getInt("key_int", 0);
long l = preferences.getLong("key_long", 0L);
float f = preferences.getFloat("key_float", 0f);
boolean b = preferences.getBoolean("key_bool", false);
String string = preferences.getString("key_str", "默认值");
Set<String> strings = preferences.getStringSet("key_str_set", null);
// 编辑配置信息
preferences.edit()
.putInt("key_int", 1)
.putLong("key_long", 1L)
.putFloat("key_float", 1f)
.putBoolean("key_bool", true)
.putString("key_str", "abc")
.remove("key_str_set")
.apply();
# 获取语言环境
/**
* 获取本地语言代码,如zh、en、ru
*/
String getLanguage();
/**
* 获取国家/地区代码,如CN,可能为空字符串
*/
String getCountry();
/**
* 合并Language和Country
* 例如Language为zh,Country为CN,返回zh-CN
* 例如Language为en,Country为空,返回en
*/
String getLanguageCountry();
# 获取本地化文本
相关内容:本地化文本
/**
* 相当于getAssetLocalString("String")
*/
LocalString getLocalString();
/**
* 获取插件 assets 文件夹中的语言包
* 具体见本地化文本说明
*/
LocalString getAssetLocalString(String name);
/**
* 获取 dir 目录下的语言包
* 具体见本地化文本说明
*/
LocalString getFileLocalString(File dir, String name);
/**
* 获取 MT 自带的一个全球语言名称的本地化文本,主要用于翻译引擎
* auto -> 自动检测
* en -> 英文
* zh-CN -> 简体中文
* ...
* 完整映射关系见「本地化文本」>>「全球语言名称」
*/
LocalString getLanguageNameLocalString();
# 获取资源文件输入流
/**
* 获取插件安装包assets文件夹内的文件输入流
* 例如文件路径为assets/d/a.txt,则参数name为d/a.txt
* 文件不存在返回null
*/
InputStream getAssetsAsStream(String name);
# 获取插件私用目录
/**
* 返回插件专用的文件目录,该目录会随着插件的卸载而被删除,建议
* 文件都写到这个目录,可防止卸载后有残留文件。
*/
File getFilesDir();
# 写出日志
MTPluginContext 提供了三个方法用于写出日志,日志内容可以在 MT 插件管理界面点击右上角查看。
/**
* 写出日志,可在插件管理界面查看
*/
void log(String msg);
/**
* 写出日志,可在插件管理界面查看
*/
void log(String msg, Throwable e);
/**
* 写出日志,可在插件管理界面查看
*/
void log(Throwable e);
# 弹出文本提示
/**
* 弹出一个Toast,显示停留时间较短
*/
void showToast(String msg);
/**
* 弹出一个Toast,显示停留时间较长
*/
void showToastL(String msg);