工具模块提供了一些辅助功能。
注意:Android 部分接口需要添加权限,如下所示:
<!-- 调节屏幕亮度功能需添加此权限 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 保存 key-value 数据及获取 key-value 数据功能需添加此权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
接口描述:获取设备相关信息。
接口调用:
string deviceInfo = SuperSDK.getInstance().InvokeString("tools", "getDeviceInfo", null);
日志打印:
{
"fingerprint_id":"202308080201670100293fc80a8cad69d4a640cdacc59a6bdde",
"client_id":"d8962b73cbf1b2c0fd8841a8886a7dad",
"trace_id":"4e11c764c820258ce778020b17a4e8f3",
"youzu_id":"d8962b73cbf1b2c0fd8841a8886a7dad",
"android_device_id":"f0459465a15088ce",
"google_id":"8d4d7200-bd1c-45be-8508-3e5a29d47081",
"android_imei":"ffffffff-f47f-2351-ffff-ffffef05ac4a",
"shumei_id":"20231023180912695c7af3c0f40c68b7a27d18a23cb77c018d887d05f29d30",
"device_name":"Xiaomi",
"package_name":"com.syj.hgame",
"idfa":"",
"idfv":"",
}
KEY | KEY含义 | 备注 |
---|---|---|
fingerprint_id | 设备指纹 ID | 正常 51 个字符,其它值为异常情况 |
shumei_id | 数美 ID | 正常 62 个字符,其它值为异常情况 |
android_device_id | 安卓 ID | 正常 16 个字符,其它值为异常情况 |
google_id | 谷歌 ID | 仅支持 Android |
package_name | 包名 | 应用 bundle id |
android_imei | IMEI | 仅支持海外,国内默认 0 |
device_name | 设备名称 | 设备自定义名称 |
youzu_id | 游族 ID | 正常 32 个字符,其它值为异常情况 |
client_id | 设备指纹 ID 映射 | 正常 32 个字符,其它值为异常情况 |
trace_id | 当前启动标识 ID | 正常 32 个字符,其它值为异常情况 |
idfv | iOS - 供应商标识符 | 仅支持 iOS, Android 空字符串 |
idfa | iOS - 广告标识符 | 仅支持 iOS, Android 空字符串 |
接口描述:采集手机设备信息。
接口调用:
string collectionData = SuperSDK.getInstance().InvokeString("tools", "getCollectionData", null);
日志打印:
{
"bundle_id": "com.youzu.supersdk.demo",
"device_name": "Xiaomi",
"device_type": "Redmi Note 3",
"idfa": "",
"idfv": "",
"language": "zh",
"network": "WIFI",
"operator": "other",
"os_version": "5.0.2"
}
接口描述:调用该接口,获取客户端 ip 地址的真正信息,如地域等。
注意:只支持海外网游渠道。
接口调用:
SuperSDK.getInstance().Invoke("tools", "getClientIP", null);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("getClientIP"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 获取IP成功
}
else
{
// 获取IP失败
}
}
}
}
日志打印:
moduleName : tools,
funcName : getClientIP,
result : {
"msg":"成功",
"data":{
"ip":"45.40.60.217",
"country":"JP", // 地区或国家
"continent":"AS" // 大洲
},
"code":1
}
参考文档: 第一列国家码,最后一列大洲码 https://www.geonames.org/countries/
接口描述:获取系统使用的语言。
接口调用:
string language = SuperSDK.getInstance().InvokeString("tools", "getLanguage", null);
日志打印:
language = zh-Hans-CN
接口描述:获取当前设备设置的国家地区。
接口调用:
string country = SuperSDK.getInstance().InvokeString("tools", "getCountry", null);
日志打印:
country = CN
接口描述:复制文字到剪切板。
接口调用:
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("value", "测试复制文字");
SuperSDK.getInstance().Invoke("tools", "copyToClipboard", params);
接口描述:弹窗提示,分为 toast 框(弹出后马上消失的框),和 dialog 框(有按钮,需点击才能消失的框)。
注意:仅支持 Android。
接口调用:
// 不传入按钮,判断为 toast 框
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("tools_content", "弹出 toast 框");// 提示用,过一秒钟即会消失
SuperSDK.getInstance().Invoke("tools", "alert", params);
接口描述:可以显示若干按钮,按钮个数可变,按钮文字使用”|“分割。如需要两个按钮:确认、取消,则写成”确认|取消”。三个按钮:”确认|中立|取消”
接口调用:
// 传入按钮,判断为 dialog
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("tools_title", "标题");
params.Add("tools_content", "弹窗内容: 这是测试内容");
params.Add("tools_button", "确认|取消");// 两个按钮
SuperSDK.getInstance().Invoke("tools", "alert", params);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("alert"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
moduleName:tools
funcName:alert
result:{"code":1,"data":"确认","msg":"success"}
接口描述:调节屏幕的亮度,只能传 0.0-1.0 之间的数字。需要添加权限,请看最上面权限添加。
接口调用:
// 调节屏幕亮度
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("value", "0.5"); // 传值范围:0.0-1.0
SuperSDK.getInstance().Invoke("tools", "setScreenLight", params);
接口描述:保存数据到 SD 卡。需要添加权限,请查看最上面权限添加。
接口调用:
// 保存的数据为 key="data",value="测试保存数据"
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("key", "data");
params.Add("value", "测试保存数据");
SuperSDK.getInstance().Invoke("tools", "saveData", params);
接口描述:获取上一条保存下来的数据。
接口调用:
// 获取 key="data" 的 value 值
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("key", "data");
string data = SuperSDK.getInstance().InvokeString("tools", "getData", params);
日志打印:
data = 测试保存数据
注意:仅支持 Android。
接口调用:
SuperSDK.getInstance().Invoke("tools","getAPPStoreReview", null);
接口调用:
SuperSDK.getInstance().Invoke("tools", "getStoreReview", null);
注意事项:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("getStoreReview"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
moduleName:tools
funcName:getStoreReview
result:{"code":1,"msg":"app内应用谷歌评价弹窗关闭"}
接口调用:
SuperSDK.getInstance().Invoke("tools","openSystemSetting", null);
接口描述:用于广告溯源,根据设备查询引流该玩家的广告。
接口调用:
SuperSDK.invoke("tools", "getDeviceCheckInfo", null);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("getDeviceCheckInfo"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
moduleName:tools
funcName:getDeviceCheckInfo
result:{
"code":1,
"data":"{
"ad_game_type":"",
"ad_name":"",
"is_ad_device":false
}",
"msg":"success"
}
接口描述:获取 CpsId 信息。
注意:仅支持 Android。
接口调用:
// 获取 CpsId
string cpsId = SuperSDK.getInstance().InvokeString("tools", "getCpsId", null);
日志打印:
cpsId=1_9_1662101236_394306
注意:仅支持 Android。
接口描述:获取 AndroidManifest 下游戏包名。
接口调用:
// 获取应用包名
string packageName = SuperSDK.getInstance().InvokeString("tools", "getPackageName", null);
日志打印:
packageName = com.youzu.supersdk.demo
接口描述:获取 AndroidManifest 下的应用名称。
接口调用:
// 获取应用名称
string appName = SuperSDK.getInstance().InvokeString("tools", "getAppName", null);
日志打印:
appName = SuperSDKDemo
接口描述:获取 AndroidManifest 下 versionCode。
接口调用:
// 获取 AndroidManifest 下 versionCode
int versionCode = SuperSDK.getInstance().InvokeInt("tools", "getVersionCode", null);
日志打印:
versionCode = 40
接口描述:获取 AndroidManifest 下 versionName。
接口调用:
// 获取 AndroidManifest 下 versionName
string versionName = SuperSDK.getInstance().InvokeString("tools", "getVersionName", null);
日志打印:
versionName = 378
接口描述:获取 AndroidManifest 下 meta-data 的 value 值。
接口调用:
// 获取 key = sp_version 的值
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("key", "sp_version"); // 获取 key="sp_version" 的 value 值
string spVersion = SuperSDK.getInstance().InvokeString("tools", "getMetaData", params);
日志打印:
spVersion = 3.1.1
注意:支持 iOS10+ 。
接口调用:
SuperSDK.getInstance().Invoke("tools", "getStoreReview", null);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("getStoreReview"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
moduleName : tools,
funcName : getStoreReview,
result : {
"code" : 1,
"msg" : "评分框已弹",
}
注意:仅支持 iOS。
接口调用:
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("value", "1538544451"); // value 值:苹果 Connent 后台提供的 AppleId,如:“1538544451”
SuperSDK.getInstance().Invoke("tools", "getAPPStoreReview", params);
接口回调:
public void OnCallBack(string moduleName, string funcName, string result)
{
Debug.Log("moduleName:" + moduleName);
Debug.Log("funcName:" + funcName);
Debug.Log("result:" + result);
JsonData resultData = JsonMapper.ToObject(result);
if (moduleName.Equals("tools"))
{
if (funcName.Equals("getAPPStoreReview"))
{
JsonData resultData = JsonMapper.ToObject(result);
int code = (int)resultData["code"];
// string msg = JsonMapper.ToJson(resultData["data"]);
if (code == SuperSDKConstants.SUCCESS)
{
// 操作成功
}
else
{
// 操作失败
}
}
}
}
日志打印:
moduleName : tools,
funcName : getAPPStoreReview,
result : {
"code" : 1,
"msg" : "跳转至评论页",
}
注意:仅支持 iOS。
接口调用:
// 判断设备是否越狱
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("judgeMethod", "0"); // 0: 内部方法,1:外部方法,2:所有方法
bool isJaibreak = SuperSDK.getInstance().InvokeBool("tools", "isJailBreak", params);
日志打印:
当前设备是否越狱:false
注意:仅支持 iOS。
接口调用:
// 获取 info.plist key 对应的字符串数据
Dictionary<string, object> params = new Dictionary<string, object>();
params.Add("key", "sp_version"); // info.plist 的某个 key,例如 sp_version
string buildVersion = SuperSDK.getInstance().InvokeString("tools", "getInfoPlistValue", params);
日志打印:
设置的 sp_version 为:4.0.0
注意:仅支持 iOS。
接口调用:
// 获取应用包名
string packageName = SuperSDK.getInstance().InvokeString("tools", "getPackageName", null);
日志打印:
获取应用的包名为:com.uuzu.mubao
接口调用:
// 获取应用名称
string appName = SuperSDK.getInstance().InvokeString("tools", "getAppName", null);
日志打印:
获取应用的名称为:Demo_Mubao
接口调用:
// 获取 short version 方法
string shortVersion = SuperSDK.getInstance().InvokeString("tools", "getShortVersion", null);
日志打印:
获取的 short version 为:4.0.0
接口调用:
// 获取 build version 方法
string buildVersion = SuperSDK.getInstance().InvokeString("tools", "getBuildVersion", null);
日志打印:
获取的 build version 为:4.0.0
注意:仅支持 iOS。
接口调用:
// 获取当前设备设置的国家
string country = SuperSDK.getInstance().InvokeString("tools", "getCountry", null);
日志打印:
获取当前设备设置的国家地区为:CN