Skip to content

SDK 接口类介绍与广告接入示例代码

配置隐私设置,需要在用户同意隐私授权后,且调用 SDK 初始化前,根据合规的需要下配置

https://doc.sigmob.com/Sigmob使用指南/SDK集成说明/Android/高级设置/隐私设置/

SDK 初始化,请在用户同意隐私授权后并根据合规需要进行隐私设置后再进行SDK 初始化调用

init 仅进行初始化,不会获取个人信息,如果要展示广告,需要再调用 WindAds 的 start 方法

OnInitializationListener 初始化回调接口定义

java
public interface OnInitializationListener {
    // 初始化成功
    void onInitializationSuccess();
    
    // 初始化失败
    void onInitializationFail(String error);
}

初始化示例代码

java
WindAds ads = WindAds.sharedAds();
WindAdOptions options = new WindAdOptions(appId, appKey);
// 设置自定义设备信息控制器(可选)
options.setCustomController(new WindCustomController() {
    /**
     * 是否允许 SDK 主动获取地理位置信息
     *
     * @return true 可以获取,false 禁止获取。默认为 true
     */
    public boolean isCanUseLocation() {
        return true;
    }

    /**
     * 当 isCanUseLocation=false 时,Sigmob 使用开发者传入的地理位置信息
     *
     * @return 地理位置参数
     */
    public Location getLocation() {
        return null;
    }

    /**
     * 是否允许 SDK 主动获取 IMEI
     *
     * @return true 可以使用,false 禁止使用。默认为 true
     */
    public boolean isCanUsePhoneState() {
        return true;
    }

    /**
     * 当 isCanUsePhoneState=false 时,Sigmob 使用开发者传入的 IMEI 信息
     *
     * @return IMEI
     */
    public String getDevImei() {
        return null;
    }

    /**
     * 是否允许 SDK 主动获取 OAID
     *
     * @return true 可以使用,false 禁止使用。默认为 true
     */
    public boolean isCanUseOaid() {
        return true;
    }

    /**
     * 当 isCanUseOaid=false 时,Sigmob 使用开发者传入的 OAID 信息
     *
     * @return OAID
     */
    public String getDevOaid() {
        return null;
    }

    /**
     * 是否允许 SDK 主动获取 AndroidId
     *
     * @return true 可以使用,false 禁止使用。默认为 true
     */
    public boolean isCanUseAndroidId() {
        return true;
    }

    /**
     * isCanUseAndroidId=false 时,Sigmob 使用开发者传入的 AndroidId 信息
     *
     * @return AndroidId
     */
    public String getAndroidId() {
        return null;
    }

    /**
     * 是否允许 SDK 查询已安装应用列表
     *
     * @return true 可以使用,false 禁止使用
     */
    public boolean isCanUseAppList() {
        return true;
    }

    /**
     * isCanUseAppList=false 时,Sigmob 使用开发者传入的已安装应用列表信息
     */
    public List<PackageInfo> getInstallPackageInfoList() {
        return null;
    }

    /**
     * 是否允许 SDK 查询运营商编码(4.22.0 版本新增)
     *
     * @return true 可以使用,false 禁止使用
     */
    public boolean isCanUseSimOperator() {
        return true;
    }

    /**
     * isCanUseSimOperator=false 时,Sigmob 使用开发者传入的运营商编码,例如:46000(4.22.0 版本新增)
     */
    public String getDevSimOperatorCode() {
        return null;
    }

    /**
     * isCanUseSimOperator=false 时,Sigmob 使用开发者传入的运营商名称,例如:中国移动(4.22.0 版本新增)
     */
    public String getDevSimOperatorName() {
        return null;
    }
});

ads.init(context, options, new OnInitializationListener(){
    @Override
    public void onInitializationSuccess() {
        // 初始化成功
    }

    @Override
    public void onInitializationFail(String error) {
        // 初始化失败
    }
});

应用列表查询示例代码

java
public List < PackageInfo > getInstallPackageInfoList(Context ctx) {
    PackageManager pm = ctx.getPackageManager();
    List < PackageInfo > result = pm.getInstalledPackages(0);
    return result;
}

运营商信息查询示例代码

java
public String[] getNetworkOperator() {
    Context context = getApplicationContext();
    TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    if (tm == null) return null;

    // 运营商编码号,例如:46000
    String operatorCode;
    int phoneType = tm.getPhoneType();
    int simState = tm.getSimState();
    Log.d(TAG, "getNetworkOperator: phoneType = " + phoneType + ", simState = " + simState);
    if (phoneType == TelephonyManager.PHONE_TYPE_CDMA && simState == TelephonyManager.SIM_STATE_READY) {
        operatorCode = tm.getSimOperator();
        Log.d(TAG, "getNetworkOperator: simOperator = " + operatorCode);
    } else {
        operatorCode = tm.getNetworkOperator();
        Log.d(TAG, "getNetworkOperator: networkOperator = " + operatorCode);
    }

    // 运营商名称,例如:中国移动
    String operatorName = tm.getNetworkOperatorName();
    return new String[] {
        operatorCode, operatorName
    };
}

SDK 启动(如需展示广告,需要调用 start 启动 SDK)

OnStartListener 启动回调定义

java
public interface OnStartListener {
    // 启动成功
    void onStartSuccess();

    // 启动失败
    void onStartFail(String error);
}

启动示例代码

java
WindAds ads = WindAds.sharedAds();
ads.start(content,new OnStartListener(){
    @Override
    public void onStartSuccess() {
        // 启动成功
    }

    @Override
    public void onStartFail(String error) {
        // 启动失败
    }
});

开启/关闭 Debug 日志

java
WindAds ads = WindAds.sharedAds();
// 是否开启 Debug 日志,true:开启;false:关闭
ads.setDebugEnable(true);

中国大陆权限授权接口(仅针对中国大陆)

java
// 发起 READ_PHONE_STATE 权限授权请求
WindAds.requestPermission(actvity);