From 355fe96b2a4c7821256d9e8828d2cb9539904878 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 05 五月 2022 19:29:16 +0800 Subject: [PATCH] 功能完善 --- android/library-ad/src/main/java/com/demo/library_ad/AdUtil.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 1 deletions(-) diff --git a/android/library-ad/src/main/java/com/demo/library_ad/AdUtil.java b/android/library-ad/src/main/java/com/demo/library_ad/AdUtil.java index 2a615bb..5386f95 100644 --- a/android/library-ad/src/main/java/com/demo/library_ad/AdUtil.java +++ b/android/library-ad/src/main/java/com/demo/library_ad/AdUtil.java @@ -3,12 +3,23 @@ import android.content.Context; import android.content.SharedPreferences; +import com.bytedance.sdk.openadsdk.TTAdConfig; import com.bytedance.sdk.openadsdk.TTAdSdk; import com.demo.lib.common.util.common.StringUtils; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.qq.e.comm.managers.GDTAdSdk; +import com.qq.e.comm.managers.setting.GlobalSetting; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; public class AdUtil { @@ -70,8 +81,32 @@ String config = share.getString("config", ""); if (!StringUtils.isEmpty(config)) {//涓囦竴娌¤缃捣灏辩敤骞跨偣閫� try { + Type type = new TypeToken<List<TypeProbability>>() { + }.getType(); + JSONObject object = new JSONObject(config); - return AD_TYPE.valueOf(object.optJSONObject(positionName).optString("type")); + JSONArray array = object.optJSONArray(positionName); + if (array == null) { + return null; + } + List<TypeProbability> typeList = new Gson().fromJson(array.toString(), type); + int count = 0; + Map<AD_TYPE, int[]> map = new HashMap<>(); + for (TypeProbability probability : typeList) { + int olcCount = count; + count += probability.getWeight(); + map.put(probability.getType(), new int[]{olcCount, count}); + } + int random = (int) (Math.random() * count); + + for (Iterator<AD_TYPE> its = map.keySet().iterator(); its.hasNext(); ) { + AD_TYPE t = its.next(); + int[] space = map.get(t); + if (space[0] <= random && random < space[1]) { + return t; + } + } + return null; } catch (JSONException e) { e.printStackTrace(); } catch (Exception e1) { @@ -81,4 +116,58 @@ return null; } + + /** + * 璁剧疆涓�у寲鎺ㄨ崘骞垮憡 + * + * @param recommend + */ + public static void setPersonalRecommend(boolean recommend) { + setPersonalRecommendCSJ(recommend); + //骞跨偣閫氫釜鎬у寲骞垮憡鍏抽棴 + GlobalSetting.setPersonalizedState(recommend ? 0 : 1); + } + + //绌垮北鐢� + private static void setPersonalRecommendCSJ(boolean recommend) { + String content = ""; + try { + JSONArray jsonArray = new JSONArray(); + JSONObject personalObject = new JSONObject(); + personalObject.put("name", "personal_ads_type"); + personalObject.put("value", recommend ? "1" : "0"); + jsonArray.put(personalObject); + content = jsonArray.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + TTAdConfig ttAdConfig = new TTAdConfig.Builder() + .data(content) + .build(); + TTAdSdk.updateAdConfig(ttAdConfig); + } + + + class TypeProbability { + AD_TYPE type; + int weight; + + public AD_TYPE getType() { + return type; + } + + public void setType(AD_TYPE type) { + this.type = type; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + } + + } -- Gitblit v1.8.0