public static void requestDeferredDeepLink(Context context, JSONObject params, String androidId, String oaid, JSONObject presetProperties, String url, boolean isSaveDeepLinkInfo) {
        if (mIsDeepLink) return;
        try {
            JSONObject jsonObject = new JSONObject();
            String ids;
            String reflectionOAID = SAOaidHelper.getOpenAdIdentifierByReflection(context);
            if (params != null) {
                if (params.has("$oaid")) {
                    oaid = params.optString("$oaid");
                    reflectionOAID = "";
                    params.remove("$oaid");
                }
                ids = ChannelUtils.getDeviceInfo(context, androidId, oaid, reflectionOAID);
                if (params.has("$gaid")) {
                    String gaid = params.optString("$gaid");
                    ids = String.format("%s##gaid=%s", ids, gaid);
                    params.remove("$gaid");
                }
                if (params.has("$user_agent")) {
                    jsonObject.put("ua", params.optString("$user_agent"));
                    params.remove("$user_agent");
                }
                jsonObject.put("app_parameter", params.toString());
            } else {
                ids = ChannelUtils.getDeviceInfo(context, androidId, oaid, reflectionOAID);
            }
            jsonObject.put("ids", Base64Coder.encodeString(ids));
            jsonObject.put("model", presetProperties.optString("$model"));
            jsonObject.put("os", presetProperties.optString("$os"));
            jsonObject.put("os_version", presetProperties.optString("$os_version"));
            jsonObject.put("network", presetProperties.optString("$network_type"));
            jsonObject.put("app_id", presetProperties.optString("$app_id"));
            jsonObject.put("app_version", presetProperties.optString("$app_version"));
            jsonObject.put("timestamp", String.valueOf(System.currentTimeMillis()));
            jsonObject.put("project", new ServerUrl(SensorsDataAPI.sharedInstance().getServerUrl()).getProject());
            DeferredDeepLinkHelper.request(jsonObject, mDeferredDeepLinkCallback, url, isSaveDeepLinkInfo);
        } catch (Exception e) {
            SALog.printStackTrace(e);
        }
    }
@Test
    public void requestDeferredDeepLink() {
        SAStoreManager.getInstance().remove(DbParams.PersistentName.REQUEST_DEFERRER_DEEPLINK);
        Assert.assertFalse(ChannelUtils.isExistRequestDeferredDeeplink());
        Assert.assertTrue(ChannelUtils.isRequestDeferredDeeplink());
        SensorsDataAPI.sharedInstance().requestDeferredDeepLink(null);
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Assert.assertTrue(ChannelUtils.isExistRequestDeferredDeeplink());
        Assert.assertFalse(ChannelUtils.isRequestDeferredDeeplink());
    }