supersdk

文档中心

文档中心

下载文档

工具模块


工具模块提供了一些辅助功能。

注意: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 信息

接口描述:调用该接口,获取客户端 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 框(有按钮,需点击才能消失的框)。

1、toast 弹窗

注意:仅支持 Android。

toast

接口调用:

// 不传入按钮,判断为 toast 框
Dictionary<string,string> params = new Dictionary<string,string>();
params.Add("tools_content", "弹出 toast 框");// 提示用,过一秒钟即会消失
SuperSDK.getInstance().Invoke("tools", "alert", params);

2、dialog 弹窗

接口描述:可以显示若干按钮,按钮个数可变,按钮文字使用”|“分割。如需要两个按钮:确认、取消,则写成”确认|取消”。三个按钮:”确认|中立|取消”

dialog

接口调用:

// 传入按钮,判断为 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。

1、跳转至商店

接口调用:

SuperSDK.getInstance().Invoke("tools","getAPPStoreReview", null);

2、应用内弹起

接口调用:

SuperSDK.getInstance().Invoke("tools", "getStoreReview", null);

  • 注意事项:

    • 1、同一个谷歌账号弹框次数有限制(谷歌后台配额:https://developer.android.google.cn/guide/playcore/in-app-review/test)
    • 2、使用的谷歌账号评论过,再次调用该接口谷歌也会返回成功
    • 3、谷歌限制账号评论时,调用该接口也会返回成功
    • 4、弹出来评论框时显示的游戏名称,是手机上 app 名称,而非谷歌商店的游戏名称
    • 5、安卓系统需要 >= 5.0

  • 调用谷歌评分(应用内弹起)接口回调信息:
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

接口描述:获取 CpsId 信息。

注意:仅支持 Android。

接口调用:

// 获取 CpsId
string cpsId = SuperSDK.getInstance().InvokeString("tools", "getCpsId", null);

日志打印:

cpsId=1_9_1662101236_394306

十五、获取 AndroidManifest 配置

注意:仅支持 Android。

1、获取包名

接口描述:获取 AndroidManifest 下游戏包名。

packagename

接口调用:

// 获取应用包名
string packageName = SuperSDK.getInstance().InvokeString("tools", "getPackageName", null);

日志打印:

packageName = com.youzu.supersdk.demo

2、获取应用名称

接口描述:获取 AndroidManifest 下的应用名称。

appName

接口调用:

// 获取应用名称
string appName = SuperSDK.getInstance().InvokeString("tools", "getAppName", null);

日志打印:

appName = SuperSDKDemo

3、获取版本号

接口描述:获取 AndroidManifest 下 versionCode。

versonCode

接口调用:

// 获取 AndroidManifest 下 versionCode
int versionCode = SuperSDK.getInstance().InvokeInt("tools", "getVersionCode", null);

日志打印:

versionCode = 40

4、获取版本名称

接口描述:获取 AndroidManifest 下 versionName。

versionName

接口调用:

// 获取 AndroidManifest 下 versionName
string versionName = SuperSDK.getInstance().InvokeString("tools", "getVersionName", null);

日志打印:

versionName = 378

5、获取 meta-data 值

接口描述:获取 AndroidManifest 下 meta-data 的 value 值。

sp_version

接口调用:

// 获取 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

十六、应用内弹出 Appstore 评分框

注意:支持 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" : "评分框已弹",
}

十七、应用内跳转至 App Store 评论页

注意:仅支持 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

十九、获取 info.plist key 对应的字符串数据

注意:仅支持 iOS。

Screenshot

接口调用:

// 获取 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。

Screenshot

1、获取应用包名

接口调用:

// 获取应用包名
string packageName = SuperSDK.getInstance().InvokeString("tools", "getPackageName", null);

日志打印:

获取应用的包名为:com.uuzu.mubao

2、获取应用名称

接口调用:

// 获取应用名称
string appName = SuperSDK.getInstance().InvokeString("tools", "getAppName", null);

日志打印:

获取应用的名称为:Demo_Mubao

3、获取 short version 方法

接口调用:

// 获取 short version 方法
string shortVersion = SuperSDK.getInstance().InvokeString("tools", "getShortVersion", null);

日志打印:

获取的 short version 为:4.0.0

4、获取 build version 方法

接口调用:

// 获取 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

Screenshot