From 398cb33a58da70805d0385dd7662394f742bcdab Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 16 Nov 2025 09:53:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E5=B9=BF=E5=91=8A=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.gradle | 21 +- powerbell/build.properties | 4 +- powerbell/proguard-rules.pro | 3 + powerbell/src/main/AndroidManifest.xml | 6 +- .../studio/powerbell/MainActivity.java | 395 +++++++++++------- .../powerbell/activities/WinBoLLActivity.java | 14 +- .../src/main/res/layout/activity_main.xml | 40 +- 7 files changed, 269 insertions(+), 214 deletions(-) diff --git a/powerbell/build.gradle b/powerbell/build.gradle index 794a12f0..ba3791d5 100644 --- a/powerbell/build.gradle +++ b/powerbell/build.gradle @@ -46,25 +46,10 @@ android { } } - // 允许使用系统隐藏API - lintOptions { - checkReleaseBuilds false - abortOnError false + // 米盟 + packagingOptions { + doNotStrip "*/*/libmimo_1011.so" } - // 针对PowerProfile的依赖配置 - dependenciesInfo { - includeInApk = false - includeInBundle = false - } - - buildFeatures { - dataBinding true - } - - lintOptions { - abortOnError false - } - } dependencies { diff --git a/powerbell/build.properties b/powerbell/build.properties index 5cd2757b..ed62d0b0 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Nov 16 00:39:18 GMT 2025 +#Sun Nov 16 01:52:06 GMT 2025 stageCount=0 libraryProject= baseVersion=15.11 publishVersion=15.11.0 -buildCount=2 +buildCount=28 baseBetaVersion=15.11.1 diff --git a/powerbell/proguard-rules.pro b/powerbell/proguard-rules.pro index 233bad20..ce666849 100644 --- a/powerbell/proguard-rules.pro +++ b/powerbell/proguard-rules.pro @@ -15,3 +15,6 @@ #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} + +## 米盟 +-keep class com.miui.zeus.** { *; } diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml index 6f683f07..24cd5416 100644 --- a/powerbell/src/main/AndroidManifest.xml +++ b/powerbell/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="cc.winboll.studio.powerbell"> - - //必要权限配置 + + //米盟必要权限配置 @@ -17,7 +17,7 @@ - + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index 63be0a0e..bf6a3514 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -1,51 +1,32 @@ package cc.winboll.studio.powerbell; -import com.miui.zeus.mimo.sdk.MimoCustomController; -import com.miui.zeus.mimo.sdk.MimoLocation; -import com.miui.zeus.mimo.sdk.MimoSdk; - -import com.miui.zeus.mimo.sdk.ADParams; -import com.miui.zeus.mimo.sdk.BannerAd; -import com.miui.zeus.mimo.sdk.base.BaseAd; - -import com.google.android.material.navigation.NavigationView; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; - +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentTransaction; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; +import android.database.Cursor; +import android.net.Uri; import android.os.Bundle; +import android.os.PersistableBundle; +import android.provider.MediaStore; import android.text.TextUtils; import android.util.Log; import android.view.Display; import android.view.Gravity; import android.view.KeyEvent; -import android.view.MenuItem; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import android.widget.Toast; - -import cc.winboll.studio.powerbell.utils.MimoUtils; -import android.app.Activity; -import android.app.Fragment; -import android.app.FragmentTransaction; -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.os.Bundle; -import android.provider.MediaStore; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.ViewGroup; -import android.widget.Button; +import android.view.Window; +import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.RelativeLayout; import android.widget.Toast; -import cc.winboll.studio.libaes.views.AToolbar; +import androidx.appcompat.app.AlertDialog; +import cc.winboll.studio.libaes.views.ASupportToolbar; import cc.winboll.studio.libappbase.LogActivity; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.powerbell.MainActivity; @@ -57,44 +38,35 @@ import cc.winboll.studio.powerbell.activities.WinBoLLActivity; import cc.winboll.studio.powerbell.beans.BackgroundPictureBean; import cc.winboll.studio.powerbell.fragments.MainViewFragment; import cc.winboll.studio.powerbell.utils.BackgroundPictureUtils; +import cc.winboll.studio.powerbell.utils.MimoUtils; +import com.miui.zeus.mimo.sdk.ADParams; +import com.miui.zeus.mimo.sdk.BannerAd; +import com.miui.zeus.mimo.sdk.MimoCustomController; +import com.miui.zeus.mimo.sdk.MimoLocation; +import com.miui.zeus.mimo.sdk.MimoSdk; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; +import androidx.appcompat.widget.Toolbar; import android.view.View; -import androidx.appcompat.app.AlertDialog; -import android.view.WindowManager; -import android.view.Window; -import android.view.Display; -import android.view.Gravity; -import android.content.DialogInterface; -import android.content.SharedPreferences; public class MainActivity extends WinBoLLActivity { public static final String TAG = "MainActivity"; - + private static final String PRIVACY_FILE = "privacy_pfs"; private static final String PRIVACY_VALUE = "privacy_value";//0: 拒绝,1:赞同 private SharedPreferences mSharedPreferences; - - - private static final String BANNER_POS_ID = "802e356f1726f9ff39c69308bfd6f06a"; - - private static final long BID_WIN_HIGHEST_LOSS_PRICE = 1;//最大竞败方出价 - private static final long BID_LOSS_WIN_PRICE = 20000;//本次竞胜方出价 + private String BANNER_POS_ID = "802e356f1726f9ff39c69308bfd6f06a"; private BannerAd mBannerAd; private List mAllBanners = new ArrayList<>(); private ViewGroup mContainer; - private Button mFetchBtn; - private Button mShowBtn; private boolean mIsBiddingWin = true; - + public static final int BACKGROUND_PICTURE_REQUEST_CODE = 0; public static MainActivity _mMainActivity; @@ -105,7 +77,7 @@ public class MainActivity extends WinBoLLActivity { Menu mMenu; Fragment mCurrentShowFragment; MainViewFragment mMainViewFragment; - AToolbar mAToolbar; + Toolbar mToolbar; @Override public Activity getActivity() { @@ -119,30 +91,14 @@ public class MainActivity extends WinBoLLActivity { @Override protected void onCreate(Bundle savedInstanceState) { - //LogUtils.d(TAG, "onCreate(...)"); + LogUtils.d(TAG, "onCreate(...)"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - + mContainer = findViewById(R.id.ads_container); + // 米盟模块 showPrivacy(); - - mContainer = findViewById(R.id.container); - mFetchBtn = findViewById(R.id.fetchAd); - mShowBtn = findViewById(R.id.showAd); - mFetchBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - fetchAd(); - } - }); - - mShowBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - showAd(); - } - }); // 设置调试日志 // mLogView = findViewById(R.id.logview); @@ -155,10 +111,10 @@ public class MainActivity extends WinBoLLActivity { //mAppConfigUtils = AppConfigUtils.getInstance(mApplication); // 初始化工具栏 - mAToolbar = (AToolbar) findViewById(R.id.toolbar); - setActionBar(mAToolbar); + mToolbar = findViewById(R.id.toolbar); + setSupportActionBar(mToolbar); //mAToolbar.setSubtitle("Main"); - mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); + mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); if (mMainViewFragment == null) { FragmentTransaction tx = getFragmentManager().beginTransaction(); @@ -171,22 +127,158 @@ public class MainActivity extends WinBoLLActivity { // NotificationHelper notificationUtils = new NotificationHelper(this); // notificationUtils.createNotificationChannels(); - + LogUtils.d(TAG, "ads start"); + new Thread(new Runnable(){ + @Override + public void run() { + LogUtils.d(TAG, "run() 1"); + runOnUiThread(new Runnable(){ + @Override + public void run() { + LogUtils.d(TAG, "run() 2"); + try { + Thread.sleep(1000); + fetchAd(); + } catch (InterruptedException e) {} + } + }); + } + }).start(); } + + + + +// public void onADs(View view) { +// LogUtils.d(TAG, "onPostCreate"); +// fetchAd(); +// +// } + + + + /*public void showADs() { + //(5.3.4新增接口) 请使用最新接口集成 + ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build(); + bannerAd.loadAd(params, new BannerAd.BannerLoadListener() { + //请求成功回调 + @Override + public void onBannerAdLoadSuccess() { + } + //请求失败回调 + @Override + public void onAdLoadFailed (int errorCode, String errorMsg) { + } + }); + + ////废弃 将会在后面版本删除 + // @Deprecated + // bannerAd.loadAd(upId, new BannerAd.BannerLoadListener() { + // //请求成功回调 + // @Override + // public void onBannerAdLoadSuccess() { + // } + // //请求失败回调 + // @Override + // public void onAdLoadFailed (int errorCode, String errorMsg) { + // } + // }); + + bannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() { + + @Override + public void onDownloadStarted() { + //开始下载 + LogUtils.d(TAG, "ads 开始下载"); + } + + @Override + public void onDownloadProgressUpdated(int progress) { + //下载进度,例如:${progress}% + LogUtils.d(TAG, String.format("ads 下载进度 %d", progress)); + } + + @Override + public void onDownloadPaused() { + //下载暂停 + LogUtils.d(TAG, "ads 下载暂停"); + } + + @Override + public void onDownloadCancel() { + //取消下载 + LogUtils.d(TAG, "ads 取消下载"); + } + + @Override + public void onDownloadFailed(int errorCode) { + //下载失败, 若需要了解errorCode具体含义,请咨询米盟 + LogUtils.d(TAG, String.format("ads 下载失败。errorCode :%d", errorCode)); + } + + @Override + public void onDownloadFinished() { + //下载结束 + LogUtils.d(TAG, "ads 下载结束"); + } + + @Override + public void onInstallStart() { + //开始安装 + LogUtils.d(TAG, "ads 开始安装"); + } + + @Override + public void onInstallFailed(int errorCode) { + //安装失败 + LogUtils.d(TAG, "ads 安装失败"); + } + + @Override + public void onInstallSuccess() { + //安装成功 + LogUtils.d(TAG, "ads 安装成功"); + } + }); + LinearLayout ads_container = findViewById(R.id.ads_container); + bannerAd.showAd(this, ads_container, new BannerAd.BannerInteractionListener() { + + @Override + public void onAdClick() { + // 广告被点击 + } + + @Override + public void onAdShow() { + // 广告被展示 + } + + @Override + public void onAdDismiss() { + // 点击关闭按钮广告消失回调 + } + + @Override + public void onRenderSuccess() { + // 广告渲染成功 + } + + @Override + public void onRenderFail(int code, String msg) { + // 广告渲染失败 + } + + }); + + }*/ @Override protected void onDestroy() { super.onDestroy(); - try { - for(BannerAd ad: mAllBanners){ - ad.destroy(); - } - } catch (Exception e) { - e.printStackTrace(); - } + //bannerAd.destroy(); } - - + + void showFragment(Fragment fragment) { FragmentTransaction tx = getFragmentManager().beginTransaction(); @@ -320,146 +412,149 @@ public class MainActivity extends WinBoLLActivity { RelativeLayout mainLayout = findViewById(R.id.activitymainRelativeLayout1); mainLayout.setBackgroundColor(nPixelColor); } - - private void showAd() { - final FrameLayout container = new FrameLayout(this); - container.setPadding(0, 0, 0, MimoUtils.dpToPx(this, 10)); - mContainer.addView(container, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); - if (mIsBiddingWin){ - //如果竞价成功,传⼊本次实际结算价 - mBannerAd.setPrice(getPrice()); - } - mBannerAd.showAd(this, container, new BannerAd.BannerInteractionListener() { + private void showAd() { + LogUtils.d(TAG, "showAd()"); + final FrameLayout container = new FrameLayout(this); + container.setPadding(0, 0, 0, MimoUtils.dpToPx(this, 10)); + mContainer.addView(container, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); + + if (mIsBiddingWin) { + //如果竞价成功,传⼊本次实际结算价 + //mBannerAd.setPrice(getPrice()); + } + mBannerAd.showAd(this, container, new BannerAd.BannerInteractionListener() { @Override public void onAdClick() { - Log.d(TAG, "onAdClick"); + LogUtils.d(TAG, "onAdClick"); } @Override public void onAdShow() { - mShowBtn.setEnabled(false); - Log.d(TAG, "onAdShow"); + //mShowBtn.setEnabled(false); + LogUtils.d(TAG, "onAdShow"); } @Override public void onAdDismiss() { - Log.d(TAG, "onAdDismiss"); + LogUtils.d(TAG, "onAdDismiss"); mContainer.removeView(container); } @Override public void onRenderSuccess() { - Log.d(TAG, "onRenderSuccess"); + LogUtils.d(TAG, "onRenderSuccess"); } @Override public void onRenderFail(int code, String msg) { - Log.e(TAG, "onRenderFail errorCode " + code + " errorMsg " + msg); + LogUtils.e(TAG, "onRenderFail errorCode " + code + " errorMsg " + msg); } }); - } + } - private void fetchAd() { - mShowBtn.setEnabled(false); - mBannerAd = new BannerAd(); - mAllBanners.add(mBannerAd); - mBannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() { + private void fetchAd() { + LogUtils.d(TAG, "fetchAd()"); + mBannerAd = new BannerAd(); + mAllBanners.add(mBannerAd); + mBannerAd.setDownLoadListener(new BannerAd.BannerDownloadListener() { @Override public void onDownloadStarted() { - Log.e(TAG, "onDownloadStarted"); + LogUtils.d(TAG, "onDownloadStarted"); } @Override public void onDownloadPaused() { - Log.e(TAG, "onDownloadPaused"); + LogUtils.d(TAG, "onDownloadPaused"); } @Override public void onDownloadFailed(int errorCode) { - Log.e(TAG, "onDownloadFailed, errorCode = "+ errorCode); + LogUtils.d(TAG, "onDownloadFailed, errorCode = " + errorCode); } @Override public void onDownloadFinished() { - Log.e(TAG, "onDownloadFinished"); + LogUtils.d(TAG, "onDownloadFinished"); } @Override public void onDownloadProgressUpdated(int progress) { - Log.e(TAG, "onDownloadProgressUpdated "+ progress + "%"); + LogUtils.d(TAG, "onDownloadProgressUpdated " + progress + "%"); } @Override public void onInstallFailed(int errorCode) { - Log.e(TAG, "onInstallFailed, errorCode = "+ errorCode); + LogUtils.d(TAG, "onInstallFailed, errorCode = " + errorCode); } @Override public void onInstallStart() { - Log.e(TAG, "onInstallStart"); + LogUtils.d(TAG, "onInstallStart"); } @Override public void onInstallSuccess() { - Log.e(TAG, "onInstallSuccess"); + LogUtils.d(TAG, "onInstallSuccess"); } @Override public void onDownloadCancel() { - Log.e(TAG, "onDownloadCancel"); + LogUtils.d(TAG, "onDownloadCancel"); } }); - ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build(); - mBannerAd.loadAd(params, new BannerAd.BannerLoadListener() { + ADParams params = new ADParams.Builder().setUpId(BANNER_POS_ID).build(); + mBannerAd.loadAd(params, new BannerAd.BannerLoadListener() { @Override public void onBannerAdLoadSuccess() { - mShowBtn.setEnabled(true); + LogUtils.d(TAG, "onBannerAdLoadSuccess()"); + showAd(); + //mShowBtn.setEnabled(true); - long bannerPrice = getPrice(); - if (mIsBiddingWin){ - //竞价成功时候上报win - Map auctionBidInfo = new HashMap<>(); - auctionBidInfo.put(BaseAd.IBidding.EXPECT_COST_PRICE, bannerPrice); - auctionBidInfo.put(BaseAd.IBidding.HIGHEST_LOSS_PRICE, BID_WIN_HIGHEST_LOSS_PRICE); - mBannerAd.win(auctionBidInfo); - } else { - //竞价失败的时候上报loss - Map lossReasonInfo = new HashMap<>(); - lossReasonInfo.put(BaseAd.IBidding.WIN_PRICE, BID_LOSS_WIN_PRICE); - lossReasonInfo.put(BaseAd.IBidding.LOSS_REASON, BaseAd.LossReason.TYPE_LOWER_OTHER_BIDDER_PRICE); - lossReasonInfo.put(BaseAd.IBidding.ADN_ID, 1); - mBannerAd.loss(lossReasonInfo); - } + /*long bannerPrice = getPrice(); + if (mIsBiddingWin) { + //竞价成功时候上报win + Map auctionBidInfo = new HashMap<>(); + auctionBidInfo.put(BaseAd.IBidding.EXPECT_COST_PRICE, bannerPrice); + auctionBidInfo.put(BaseAd.IBidding.HIGHEST_LOSS_PRICE, BID_WIN_HIGHEST_LOSS_PRICE); + mBannerAd.win(auctionBidInfo); + } else { + //竞价失败的时候上报loss + Map lossReasonInfo = new HashMap<>(); + lossReasonInfo.put(BaseAd.IBidding.WIN_PRICE, BID_LOSS_WIN_PRICE); + lossReasonInfo.put(BaseAd.IBidding.LOSS_REASON, BaseAd.LossReason.TYPE_LOWER_OTHER_BIDDER_PRICE); + lossReasonInfo.put(BaseAd.IBidding.ADN_ID, 1); + mBannerAd.loss(lossReasonInfo); + }*/ } @Override public void onAdLoadFailed(int errorCode, String errorMsg) { - Log.e(TAG, "errorCode = " + errorCode + ", errorMsg = " + errorMsg); + LogUtils.d(TAG, "errorCode = " + errorCode + ", errorMsg = " + errorMsg); } }); - } - - private long getPrice(){ - if (mBannerAd == null){ - return 0; - } - Map map = mBannerAd.getMediaExtraInfo(); - if (map == null || map.isEmpty()){ - return 0; - } - return (long) map.get("price"); - } - - - private void showPrivacy(){ + } + +// private long getPrice() { +// if (mBannerAd == null) { +// return 0; +// } +// Map map = mBannerAd.getMediaExtraInfo(); +// if (map == null || map.isEmpty()) { +// return 0; +// } +// return (long) map.get("price"); +// } + + + private void showPrivacy() { String privacyAgreeValue = getSharedPreferences().getString(PRIVACY_VALUE, null); - if (TextUtils.equals(privacyAgreeValue, String.valueOf(0))){ + if (TextUtils.equals(privacyAgreeValue, String.valueOf(0))) { Log.i(TAG, "已拒绝隐私协议,广告已处于不可以状态..."); Toast.makeText(this, "已拒绝隐私协议,广告已处于不可以状态", Toast.LENGTH_SHORT).show(); return; } - if (TextUtils.equals(privacyAgreeValue, String.valueOf(1))){ + if (TextUtils.equals(privacyAgreeValue, String.valueOf(1))) { Log.i(TAG, "已同意隐私协议,开始初始化..."); initMimoSdk(); return; @@ -557,7 +652,7 @@ public class MainActivity extends WinBoLLActivity { } public SharedPreferences getSharedPreferences() { - if (mSharedPreferences == null){ + if (mSharedPreferences == null) { mSharedPreferences = getSharedPreferences(PRIVACY_FILE, Context.MODE_PRIVATE); } return mSharedPreferences; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java index 035374b3..4b8e00ec 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/WinBoLLActivity.java @@ -73,13 +73,13 @@ public abstract class WinBoLLActivity extends AppCompatActivity implements IWinB } public void setupToolbar() { -// mToolbar = findViewById(R.id.toolbar); -// if (mToolbar != null) { -// setSupportActionBar(mToolbar); -// if (getSupportActionBar() != null) { -// getSupportActionBar().setDisplayHomeAsUpEnabled(true); -// } -// } + Toolbar mToolbar = findViewById(R.id.toolbar); + if (mToolbar != null) { + setSupportActionBar(mToolbar); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + } } @Override diff --git a/powerbell/src/main/res/layout/activity_main.xml b/powerbell/src/main/res/layout/activity_main.xml index c9c0457b..ae87b81e 100644 --- a/powerbell/src/main/res/layout/activity_main.xml +++ b/powerbell/src/main/res/layout/activity_main.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:layout_height="wrap_content"> -