Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
PrictureTranslate
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bixing
PrictureTranslate
Commits
9197c2d9
Commit
9197c2d9
authored
Jul 20, 2026
by
bixing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持腾讯广告
parent
5bc33fa5
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
463 additions
and
100 deletions
+463
-100
build.gradle
admob_media_app/build.gradle
+11
-28
AndroidManifest.xml
admob_media_app/src/main/AndroidManifest.xml
+59
-0
PictureTranslateListMainActivity.java
...etranslate/activity/PictureTranslateListMainActivity.java
+8
-0
InitA.java
admob_media_app/src/main/java/com/gem/media/InitA.java
+44
-0
AdManager.java
...b_media_app/src/main/java/com/gem/media/ad/AdManager.java
+8
-4
AdSurgeInterstitialManager.java
...ain/java/com/gem/media/ad/AdSurgeInterstitialManager.java
+240
-0
AdmobInterstitialManager.java
.../main/java/com/gem/media/ad/AdmobInterstitialManager.java
+2
-0
AdmobNativeManager.java
...pp/src/main/java/com/gem/media/ad/AdmobNativeManager.java
+1
-1
CpAdData.java
admob_media_app/src/main/java/com/gem/media/ad/CpAdData.java
+81
-1
MyDataService.java
...src/main/java/com/gem/media/ad/service/MyDataService.java
+9
-66
No files found.
admob_media_app/build.gradle
View file @
9197c2d9
...
@@ -47,9 +47,9 @@ android {
...
@@ -47,9 +47,9 @@ android {
signingConfigs
{
signingConfigs
{
toolsTest
{
toolsTest
{
storeFile
file
(
"picturetranslate.jks"
)
storeFile
file
(
"picturetranslate.jks"
)
storePassword
'
123456
'
storePassword
'
q@k1c2@t4s
'
keyAlias
'
key0
'
keyAlias
'
quickText
'
keyPassword
'
123456
'
keyPassword
'
q@k1c2@t4s
'
}
}
testSign
{
testSign
{
storeFile
file
(
"cc.jks"
)
storeFile
file
(
"cc.jks"
)
...
@@ -62,8 +62,9 @@ android {
...
@@ -62,8 +62,9 @@ android {
flavorDimensions
"versionName"
flavorDimensions
"versionName"
productFlavors
{
productFlavors
{
transalte
{
transalte
{
versionCode
100014
applicationId
"picturetranslate.extractor.text.lite"
applicationId
"picturetranslate.extractor.text.lite"
versionName
"
1.0.0.0
"
versionName
"
2.0.14
"
signingConfig
signingConfigs
.
toolsTest
signingConfig
signingConfigs
.
toolsTest
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-9356757350640102~6934070860"
,
signature:
"04ced0bb5c9f0b2adf2f27dd57538cc8"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"3"
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-9356757350640102~6934070860"
,
signature:
"04ced0bb5c9f0b2adf2f27dd57538cc8"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"3"
]
]
...
@@ -72,8 +73,8 @@ android {
...
@@ -72,8 +73,8 @@ android {
versionCode
90015
versionCode
90015
versionName
"1.0.15"
versionName
"1.0.15"
signingConfig
signingConfigs
.
testSign
signingConfig
signingConfigs
.
testSign
applicationId
"com.hr.heart.rate"
applicationId
"com.
c.
hr.heart.rate"
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-3940256099942544~3347511713"
,
signature:
"
8112af66991cd22a83219a1fd10403c9
"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"3"
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-3940256099942544~3347511713"
,
signature:
"
eecfd4e18c1ecb814f6258a32b9ea1fd
"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"3"
]
]
ndk
{
ndk
{
abiFilters
'armeabi-v7a'
,
'arm64-v8a'
,
'armeabi'
abiFilters
'armeabi-v7a'
,
'arm64-v8a'
,
'armeabi'
...
@@ -140,41 +141,23 @@ dependencies {
...
@@ -140,41 +141,23 @@ dependencies {
api
"com.google.android.gms:play-services-ads:24.0.0"
api
"com.google.android.gms:play-services-ads:24.0.0"
api
(
'androidx.lifecycle:lifecycle-livedata:2.5.1'
)
api
(
'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
)
api
(
'com.alibaba:fastjson:1.1.72.android'
)
api
(
'io.reactivex.rxjava3:rxandroid:3.0.2'
)
api
(
"me.leolin:ShortcutBadger:1.1.22@aar"
)
api
(
'com.guolindev.permissionx:permissionx:1.7.1'
)
api
"com.google.code.gson:gson:2.10.1"
//glide
api
(
'jp.wasabeef:glide-transformations:4.3.0'
)
annotationProcessor
(
"com.github.bumptech.glide:compiler:4.13.2"
)
annotationProcessor
(
"com.github.bumptech.glide:compiler:4.13.2"
)
implementation
"androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"
/*UI相关第三方*/
//Adapter
api
'io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.14'
//Custom Ratingbar
//Custom Ratingbar
implementation
'com.github.wdsqjq:AndRatingBar:1.0.6'
implementation
'com.github.wdsqjq:AndRatingBar:1.0.6'
api
'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
api
"com.airbnb.android:lottie:6.1.0"
implementation
"com.blankj:utilcodex:1.31.1"
implementation
'com.tencent.bugly:crashreport:latest.release'
implementation
'com.tencent.bugly:crashreport:latest.release'
//tencent
api
'com.adsurge.sdk:adn-sdk:1.6.1'
api
(
'androidx.lifecycle:lifecycle-livedata:2.5.1'
)
api
(
'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
)
api
(
'com.alibaba:fastjson:1.1.72.android'
)
api
(
'com.alibaba:fastjson:1.1.72.android'
)
api
(
'io.reactivex.rxjava3:rxandroid:3.0.2'
)
api
(
'io.reactivex.rxjava3:rxandroid:3.0.2'
)
...
...
admob_media_app/src/main/AndroidManifest.xml
View file @
9197c2d9
...
@@ -222,6 +222,65 @@
...
@@ -222,6 +222,65 @@
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
android:name=
"com.google.android.gms.ads.AdActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:exported=
"false"
android:theme=
"@android:style/Theme.Translucent"
tools:ignore=
"MissingClass"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:launchMode=
"standard"
android:excludeFromRecents=
"true"
tools:replace=
"android:icon, android:excludeFromRecents, android:launchMode, android:label"
/>
<activity
android:name=
"com.adsurge.adn.ads.activity.AdActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported=
"false"
android:multiprocess=
"true"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:launchMode=
"standard"
android:excludeFromRecents=
"true"
tools:replace=
"android:icon, android:excludeFromRecents, android:launchMode, android:label"
/>
<activity
android:name=
"com.adsurge.adn.ads.activity.PortraitAdActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported=
"false"
android:multiprocess=
"true"
android:screenOrientation=
"portrait"
android:theme=
"@android:style/Theme.Light.NoTitleBar"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:launchMode=
"standard"
android:excludeFromRecents=
"true"
tools:replace=
"android:icon, android:excludeFromRecents, android:launchMode, android:label"
/>
<activity
android:name=
"com.adsurge.adn.ads.activity.LandscapeAdActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported=
"false"
android:multiprocess=
"true"
android:screenOrientation=
"sensorLandscape"
android:theme=
"@android:style/Theme.Light.NoTitleBar"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:launchMode=
"standard"
android:excludeFromRecents=
"true"
tools:replace=
"android:icon, android:excludeFromRecents, android:launchMode, android:label"
/>
<activity
android:name=
"com.adsurge.adn.ads.activity.TranslucentAdActivity"
android:configChanges=
"keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:exported=
"false"
android:launchMode=
"standard"
android:multiprocess=
"true"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:excludeFromRecents=
"true"
tools:replace=
"android:icon, android:excludeFromRecents, android:launchMode, android:label"
/>
<service
<service
android:name=
"com.gem.media.ad.service.MyDataService"
android:name=
"com.gem.media.ad.service.MyDataService"
android:exported=
"true"
android:exported=
"true"
...
...
admob_media_app/src/main/java/com/ads/cal/picturetranslate/activity/PictureTranslateListMainActivity.java
View file @
9197c2d9
...
@@ -54,6 +54,7 @@ import com.android.gem.core.Event;
...
@@ -54,6 +54,7 @@ import com.android.gem.core.Event;
import
com.android.gem.core.Node
;
import
com.android.gem.core.Node
;
import
com.gem.media.InitA
;
import
com.gem.media.InitA
;
import
com.gem.media.StatsStaticHelper
;
import
com.gem.media.StatsStaticHelper
;
import
com.gem.media.ad.AdSurgeInterstitialManager
;
import
com.gem.media.ad.AdmobInterstitialManager
;
import
com.gem.media.ad.AdmobInterstitialManager
;
import
com.gem.media.ad.GoogleMobileAdsConsentManager
;
import
com.gem.media.ad.GoogleMobileAdsConsentManager
;
import
com.gem.media.splash.base.protocol.AdCallback
;
import
com.gem.media.splash.base.protocol.AdCallback
;
...
@@ -100,6 +101,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
...
@@ -100,6 +101,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
private
static
final
String
APP_ID
=
"appid"
;
private
static
final
String
APP_ID
=
"appid"
;
private
static
final
String
T
=
"_"
;
private
static
final
String
T
=
"_"
;
private
static
final
String
INTERSTITIAL
=
"interstitial"
;
private
static
final
String
INTERSTITIAL
=
"interstitial"
;
private
static
final
String
ADSURGE_INTERSTITIAL
=
"adsurge_interstitial"
;
private
static
final
String
a_er
=
"a_er"
;
private
static
final
String
a_er
=
"a_er"
;
private
Messenger
messenger
=
null
;
private
Messenger
messenger
=
null
;
...
@@ -162,6 +164,9 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
...
@@ -162,6 +164,9 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
if
(
AdmobInterstitialManager
.
instance
().
isAdAvailable
())
{
if
(
AdmobInterstitialManager
.
instance
().
isAdAvailable
())
{
AdmobInterstitialManager
.
instance
().
showAd
(
this
,
Constants
.
SCENARIO_CHAPIN_PROCESS
);
AdmobInterstitialManager
.
instance
().
showAd
(
this
,
Constants
.
SCENARIO_CHAPIN_PROCESS
);
report
(
Constants
.
NODE_CACHE
,
INTERSTITIAL
);
report
(
Constants
.
NODE_CACHE
,
INTERSTITIAL
);
}
else
if
(
AdSurgeInterstitialManager
.
instance
().
isAdAvailable
())
{
AdSurgeInterstitialManager
.
instance
().
showAd
(
Constants
.
SCENARIO_CHAPIN_PROCESS
);
report
(
Constants
.
NODE_CACHE
,
ADSURGE_INTERSTITIAL
);
}
else
{
}
else
{
LLog
.
d
(
TAG
,
"showAd"
+
7
);
LLog
.
d
(
TAG
,
"showAd"
+
7
);
finish
();
finish
();
...
@@ -189,6 +194,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
...
@@ -189,6 +194,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
interstitialAdCallback
=
new
InterstitialAdCallback
(
this
);
interstitialAdCallback
=
new
InterstitialAdCallback
(
this
);
}
}
AdmobInterstitialManager
.
instance
().
setAdCallback
(
interstitialAdCallback
);
AdmobInterstitialManager
.
instance
().
setAdCallback
(
interstitialAdCallback
);
AdSurgeInterstitialManager
.
instance
().
setAdCallback
(
interstitialAdCallback
);
}
}
private
void
initSource
(
Intent
intent
)
{
private
void
initSource
(
Intent
intent
)
{
...
@@ -390,6 +396,8 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
...
@@ -390,6 +396,8 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
protected
void
onDestroy
()
{
protected
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
interstitialAdCallback
=
null
;
interstitialAdCallback
=
null
;
AdmobInterstitialManager
.
instance
().
setAdCallback
(
null
);
AdSurgeInterstitialManager
.
instance
().
setAdCallback
(
null
);
if
(
init
==
0
)
{
if
(
init
==
0
)
{
return
;
return
;
}
}
...
...
admob_media_app/src/main/java/com/gem/media/InitA.java
View file @
9197c2d9
...
@@ -29,6 +29,7 @@ import com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity;
...
@@ -29,6 +29,7 @@ import com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity;
import
com.android.gem.core.ReportBean
;
import
com.android.gem.core.ReportBean
;
import
com.gem.media.ad.AdManager
;
import
com.gem.media.ad.AdManager
;
import
com.gem.media.ad.AdStatusCallBack
;
import
com.gem.media.ad.AdStatusCallBack
;
import
com.gem.media.ad.AdSurgeInterstitialManager
;
import
com.gem.media.ad.AdmobInterstitialManager
;
import
com.gem.media.ad.AdmobInterstitialManager
;
import
com.gem.media.ad.AdmobNativeManager
;
import
com.gem.media.ad.AdmobNativeManager
;
import
com.gem.media.ad.NativeAdStatusCallBack
;
import
com.gem.media.ad.NativeAdStatusCallBack
;
...
@@ -99,6 +100,7 @@ public class InitA {
...
@@ -99,6 +100,7 @@ public class InitA {
pid
=
android
.
os
.
Process
.
myPid
();
pid
=
android
.
os
.
Process
.
myPid
();
initAdmobInterstitialAdListener
();
initAdmobInterstitialAdListener
();
initAdmobNativeAdListener
();
initAdmobNativeAdListener
();
initAdSurgeInterstitialAdListener
();
context
.
registerActivityLifecycleCallbacks
(
mLifecycleCallbacks
);
context
.
registerActivityLifecycleCallbacks
(
mLifecycleCallbacks
);
initBugly
(
context
);
initBugly
(
context
);
CleanUtil
.
init
(
context
);
CleanUtil
.
init
(
context
);
...
@@ -443,6 +445,48 @@ public class InitA {
...
@@ -443,6 +445,48 @@ public class InitA {
});
});
}
}
private
void
initAdSurgeInterstitialAdListener
()
{
AdSurgeInterstitialManager
.
instance
().
setAdStatusCallBack
(
new
AdStatusCallBack
()
{
@Override
public
void
onAdLoad
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
onAdLoaded
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
onNoAdError
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
onAdShow
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
onAdClick
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
onAdDismiss
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
if
(
adShownCallback
!=
null
)
{
adShownCallback
.
onAdCompleted
();
}
sendAdStatusMessage
(
type
,
ad_type
,
reason
,
time
,
scenario
,
adId
);
}
@Override
public
void
nextMediaAppAdReq
(
String
type
,
String
ad_type
,
String
reason
,
long
time
,
String
adId
,
String
scenario
)
{
sendAdStatusMessage
(
reason
,
time
,
adId
);
}
});
}
private
void
initAdmobNativeAdListener
()
{
private
void
initAdmobNativeAdListener
()
{
AdmobNativeManager
.
setNativeAdStatusCallBack
(
new
NativeAdStatusCallBack
()
{
AdmobNativeManager
.
setNativeAdStatusCallBack
(
new
NativeAdStatusCallBack
()
{
@Override
@Override
...
...
admob_media_app/src/main/java/com/gem/media/ad/AdManager.java
View file @
9197c2d9
...
@@ -51,11 +51,11 @@ public class AdManager {
...
@@ -51,11 +51,11 @@ public class AdManager {
}
}
public
boolean
hasCache
()
{
public
boolean
hasCache
()
{
return
AdmobInterstitialManager
.
instance
().
isAdAvailable
();
return
AdmobInterstitialManager
.
instance
().
isAdAvailable
()
||
AdSurgeInterstitialManager
.
instance
().
isAdAvailable
()
;
}
}
public
boolean
adIsLoading
()
{
public
boolean
adIsLoading
()
{
return
AdmobInterstitialManager
.
instance
().
isAdIsLoading
();
return
AdmobInterstitialManager
.
instance
().
isAdIsLoading
()
||
AdSurgeInterstitialManager
.
instance
().
isAdIsLoading
()
;
}
}
public
void
saveAdExpCount
()
{
public
void
saveAdExpCount
()
{
...
@@ -148,7 +148,7 @@ public class AdManager {
...
@@ -148,7 +148,7 @@ public class AdManager {
String
er
=
Log
.
getStackTraceString
(
e
);
String
er
=
Log
.
getStackTraceString
(
e
);
LLog
.
w
(
"AdManager--"
,
er
);
LLog
.
w
(
"AdManager--"
,
er
);
}
}
if
(
TextUtils
.
isEmpty
(
cpId
)
||
!
CpAdData
.
CP_ADMOB
.
equals
(
cpId
))
{
if
(
TextUtils
.
isEmpty
(
cpId
)
||
(!
CpAdData
.
CP_ADMOB
.
equals
(
cpId
)
&&
!
CpAdData
.
CP_ADSURGE
.
equals
(
cpId
)
))
{
return
;
return
;
}
}
...
@@ -156,9 +156,13 @@ public class AdManager {
...
@@ -156,9 +156,13 @@ public class AdManager {
if
(
adData
==
null
)
{
if
(
adData
==
null
)
{
adData
=
new
AdData
();
adData
=
new
AdData
();
}
}
CpAdData
.
init
(
adAppId_channelId
);
CpAdData
.
init
(
adAppId_channelId
,
cpId
);
adData
.
addData
(
adType
,
adId
);
adData
.
addData
(
adType
,
adId
);
CpAdData
.
getInstance
().
setCpData
(
cpId
,
adData
);
CpAdData
.
getInstance
().
setCpData
(
cpId
,
adData
);
if
(
CpAdData
.
CP_ADSURGE
.
equals
(
cpId
))
{
return
;
}
if
(
AdData
.
AD_TYPE_INTERSTITIAL
.
equals
(
adType
))
{
if
(
AdData
.
AD_TYPE_INTERSTITIAL
.
equals
(
adType
))
{
AdmobInterstitialManager
.
instance
().
loadAd
(
PictureApplication
.
getApplication
(),
AdmobInterstitialManager
.
instance
().
loadAd
(
PictureApplication
.
getApplication
(),
AdmobInterstitialManager
.
instance
().
loadIndex
);
AdmobInterstitialManager
.
instance
().
loadIndex
);
...
...
admob_media_app/src/main/java/com/gem/media/ad/AdSurgeInterstitialManager.java
0 → 100644
View file @
9197c2d9
package
com
.
gem
.
media
.
ad
;
import
android.app.KeyguardManager
;
import
android.content.Context
;
import
android.os.PowerManager
;
import
android.text.TextUtils
;
import
com.gem.media.splash.base.protocol.AdCallback
;
import
com.gem.media.splash.base.protocol.Constants
;
import
com.gem.media.splash.base.utils.ALog
;
import
java.util.Date
;
import
com.adsurge.adn.ads.AdConfig
;
import
com.adsurge.adn.ads.AdSurgeAd
;
import
com.adsurge.adn.ads.AdSurgeAdError
;
import
com.adsurge.adn.ads.interstitial.InterstitialAd
;
import
com.adsurge.adn.ads.interstitial.InterstitialAdListener
;
public
class
AdSurgeInterstitialManager
{
private
static
final
String
TAG
=
"AdSurgeInterstitialManager"
;
private
static
final
String
AD_TYPE
=
"adsurge_chapin"
;
private
static
final
class
AdManagerHolder
{
static
final
AdSurgeInterstitialManager
adManager
=
new
AdSurgeInterstitialManager
();
}
public
static
AdSurgeInterstitialManager
instance
()
{
return
AdManagerHolder
.
adManager
;
}
private
AdCallback
adCallback
;
private
AdStatusCallBack
adStatusCallBack
;
private
InterstitialAd
interstitialAd
;
private
volatile
boolean
adIsLoading
;
private
long
requestTime
;
private
String
scenario
;
public
void
setAdCallback
(
AdCallback
adCallback
)
{
this
.
adCallback
=
adCallback
;
}
public
void
setAdStatusCallBack
(
AdStatusCallBack
adStatusCallBack
)
{
this
.
adStatusCallBack
=
adStatusCallBack
;
}
private
void
loadInterstitial
(
Context
context
,
String
adUnitId
)
{
interstitialAd
=
null
;
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onAdLoad
(
Constants
.
NODE_REQUEST
,
AD_TYPE
,
"load"
,
-
1
,
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping end. "
+
adUnitId
);
interstitialAd
=
new
InterstitialAd
(
context
,
adUnitId
);
AdConfig
adConfig
=
new
AdConfig
.
Builder
()
.
mute
(
AdConfig
.
SoundState
.
MUTED
)
.
build
();
requestTime
=
System
.
currentTimeMillis
();
adIsLoading
=
true
;
interstitialAd
.
loadAd
(
adConfig
,
new
InterstitialAdListener
()
{
@Override
public
void
onAdLoaded
(
AdSurgeAd
adSurgeAd
)
{
ALog
.
i
(
TAG
,
"onAdLoaded"
);
adIsLoading
=
false
;
loadAdTime
=
(
new
Date
()).
getTime
();
requestTime
=
System
.
currentTimeMillis
()
-
requestTime
;
if
(
null
!=
adCallback
)
{
adCallback
.
onAdLoaded
(
Constants
.
NODE_REQUEST_SUCCESS_EID
,
AD_TYPE
,
"loaded"
,
requestTime
);
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onAdLoaded
(
Constants
.
NODE_REQUEST_SUCCESS
,
AD_TYPE
,
"loaded"
,
requestTime
,
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
requestTime
=
System
.
currentTimeMillis
();
loadIndex
=
0
;
}
@Override
public
void
onAdFailed
(
AdSurgeAdError
adSurgeAdError
)
{
ALog
.
i
(
TAG
,
adSurgeAdError
.
getErrorMsg
());
adIsLoading
=
false
;
interstitialAd
=
null
;
String
error
=
String
.
format
(
java
.
util
.
Locale
.
US
,
"code: %d, message: %s"
,
adSurgeAdError
.
getErrorCode
(),
adSurgeAdError
.
getErrorMsg
());
ALog
.
i
(
TAG
,
"onAdFailedToLoad() with error: "
+
error
+
adUnitId
);
requestTime
=
System
.
currentTimeMillis
()
-
requestTime
;
if
(
null
!=
adCallback
)
{
adCallback
.
onAdError
(
Constants
.
NODE_ERROR_EID
,
AD_TYPE
,
error
,
requestTime
);
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onNoAdError
(
Constants
.
NODE_ERROR
,
AD_TYPE
,
error
,
requestTime
,
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
loadAd
(
context
,
loadIndex
);
}
@Override
public
void
onAdImpression
(
AdSurgeAd
adSurgeAd
)
{
ALog
.
d
(
TAG
,
"onAdImpression."
);
requestTime
=
System
.
currentTimeMillis
()
-
requestTime
;
if
(
null
!=
adCallback
)
{
adCallback
.
onAdShow
(
Constants
.
NODE_SHOW_EID
,
AD_TYPE
,
"show"
,
requestTime
);
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onAdShow
(
Constants
.
NODE_SHOW
,
AD_TYPE
,
"show"
,
requestTime
,
mAdUnitId
,
scenario
);
}
AdManager
.
getInstance
().
saveAdExpCount
();
}
@Override
public
void
onAdClicked
(
AdSurgeAd
adSurgeAd
)
{
ALog
.
d
(
TAG
,
"onAdClicked."
);
if
(
null
!=
adCallback
)
{
adCallback
.
onAdClick
(
Constants
.
NODE_CLICK_EID
,
AD_TYPE
,
"click"
,
-
1
);
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onAdClick
(
Constants
.
NODE_CLICK
,
AD_TYPE
,
"click"
,
-
1
,
mAdUnitId
,
scenario
);
}
}
@Override
public
void
onAdDismissed
(
AdSurgeAd
adSurgeAd
)
{
interstitialAd
=
null
;
ALog
.
d
(
TAG
,
"onAdDismissedFullScreenContent."
);
if
(
null
!=
adCallback
)
{
adCallback
.
onAdClose
(
Constants
.
NODE_CLOSE_EID
,
AD_TYPE
,
""
,
-
1
);
adCallback
=
null
;
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
onAdDismiss
(
Constants
.
NODE_CLOSE
,
AD_TYPE
,
""
,
-
1
,
mAdUnitId
,
scenario
);
}
interstitialAd
=
null
;
}
});
}
/** Check if ad exists and can be shown. */
public
boolean
isAdAvailable
()
{
return
interstitialAd
!=
null
&&
interstitialAd
.
isValid
();
}
private
long
loadAdTime
;
//ca-app-pub-3940256099942544/1033173712
private
static
String
mAdUnitId
;
public
int
loadIndex
=
0
;
public
void
showAd
(
String
scenario
)
{
ALog
.
d
(
TAG
,
"Will show ad."
);
this
.
scenario
=
scenario
;
try
{
interstitialAd
.
showAd
();
}
catch
(
Exception
e
)
{
//
}
}
public
void
loadAd
(
Context
context
,
int
loadIndex
)
{
if
(
context
==
null
)
{
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"context is null"
,
-
2
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"loadAd AdSurge chaping start"
,
-
2
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping start."
);
if
(
adIsLoading
)
{
ALog
.
d
(
TAG
,
"loadAd AdSurge isLoading. "
+
AdSurgeInterstitialManager
.
mAdUnitId
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"adIsLoading"
,
-
2
,
AdSurgeInterstitialManager
.
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
if
(
isAdAvailable
())
{
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping 3."
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"has cache"
,
-
2
,
AdSurgeInterstitialManager
.
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
try
{
AdData
adData
=
CpAdData
.
getInstance
().
getAdData
(
CpAdData
.
CP_ADSURGE
);
if
(
adData
==
null
)
{
ALog
.
w
(
TAG
,
" adData = null"
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"adData = null"
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
AdSurgeInterstitialManager
.
mAdUnitId
=
adData
.
getAdAdId
(
AdData
.
AD_TYPE_INTERSTITIAL
,
loadIndex
);
if
(
TextUtils
.
isEmpty
(
AdSurgeInterstitialManager
.
mAdUnitId
))
{
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping AdUnitId is empty loadIndex = "
+
loadIndex
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"AdUnitId is empty loadIndex = "
+
loadIndex
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
this
.
loadIndex
=
0
;
return
;
}
if
(
isScreenLock
(
context
))
{
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping 1."
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"isScreenLock"
,
-
2
,
AdSurgeInterstitialManager
.
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
if
(!
isScreenOn
(
context
))
{
ALog
.
d
(
TAG
,
"loadAd AdSurge chaping 2."
);
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"isScreenOff"
,
-
2
,
AdSurgeInterstitialManager
.
mAdUnitId
,
Constants
.
SCENARIO_CHAPIN
);
}
return
;
}
this
.
loadIndex
=
loadIndex
+
1
;
loadInterstitial
(
context
,
mAdUnitId
);
}
catch
(
Exception
e
)
{
ALog
.
d
(
TAG
,
"loadAd chaping. e ----"
+
e
.
getMessage
());
}
}
public
boolean
isAdIsLoading
()
{
return
adIsLoading
;
}
private
boolean
isScreenLock
(
Context
context
)
{
try
{
KeyguardManager
km
=
(
KeyguardManager
)
context
.
getSystemService
(
Context
.
KEYGUARD_SERVICE
);
if
(
km
==
null
)
return
false
;
return
km
.
inKeyguardRestrictedInputMode
();
}
catch
(
Exception
e
)
{
return
false
;
}
}
public
static
boolean
isScreenOn
(
Context
context
)
{
PowerManager
powerManager
=
(
PowerManager
)
context
.
getSystemService
(
Context
.
POWER_SERVICE
);
return
powerManager
.
isInteractive
();
}
}
admob_media_app/src/main/java/com/gem/media/ad/AdmobInterstitialManager.java
View file @
9197c2d9
...
@@ -242,6 +242,7 @@ public class AdmobInterstitialManager {
...
@@ -242,6 +242,7 @@ public class AdmobInterstitialManager {
if
(
null
!=
adStatusCallBack
)
{
if
(
null
!=
adStatusCallBack
)
{
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"adData = null"
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"adData = null"
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
}
AdSurgeInterstitialManager
.
instance
().
loadAd
(
context
,
AdSurgeInterstitialManager
.
instance
().
loadIndex
);
return
;
return
;
}
}
AdmobInterstitialManager
.
mAdUnitId
=
adData
.
getAdAdId
(
AdData
.
AD_TYPE_INTERSTITIAL
,
loadIndex
);
AdmobInterstitialManager
.
mAdUnitId
=
adData
.
getAdAdId
(
AdData
.
AD_TYPE_INTERSTITIAL
,
loadIndex
);
...
@@ -251,6 +252,7 @@ public class AdmobInterstitialManager {
...
@@ -251,6 +252,7 @@ public class AdmobInterstitialManager {
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"AdUnitId is empty loadIndex = "
+
loadIndex
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
adStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"AdUnitId is empty loadIndex = "
+
loadIndex
,
-
1
,
""
,
Constants
.
SCENARIO_CHAPIN
);
}
}
this
.
loadIndex
=
0
;
this
.
loadIndex
=
0
;
AdSurgeInterstitialManager
.
instance
().
loadAd
(
context
,
AdSurgeInterstitialManager
.
instance
().
loadIndex
);
return
;
return
;
}
}
if
(
isScreenLock
(
context
))
{
if
(
isScreenLock
(
context
))
{
...
...
admob_media_app/src/main/java/com/gem/media/ad/AdmobNativeManager.java
View file @
9197c2d9
...
@@ -253,7 +253,7 @@ public class AdmobNativeManager {
...
@@ -253,7 +253,7 @@ public class AdmobNativeManager {
if
(
null
!=
nativeAdStatusCallBack
)
{
if
(
null
!=
nativeAdStatusCallBack
)
{
nativeAdStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"canRequestAds false"
,
-
1
,
AdmobNativeManager
.
mAdUnitId
,
Constants
.
SCENARIO_NATIVE_CLEAR
);
nativeAdStatusCallBack
.
nextMediaAppAdReq
(
Constants
.
NODE_NEXT_MEDIA_AD_REQ
,
AD_TYPE
,
"canRequestAds false"
,
-
1
,
AdmobNativeManager
.
mAdUnitId
,
Constants
.
SCENARIO_NATIVE_CLEAR
);
}
}
return
;
//
return;
}
}
if
(
isAdAvailable
())
{
if
(
isAdAvailable
())
{
LLog
.
d
(
TAG
,
"loadAd admob native 3."
);
LLog
.
d
(
TAG
,
"loadAd admob native 3."
);
...
...
admob_media_app/src/main/java/com/gem/media/ad/CpAdData.java
View file @
9197c2d9
package
com
.
gem
.
media
.
ad
;
package
com
.
gem
.
media
.
ad
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
com.ads.cal.picturetranslate.PictureApplication
;
import
com.adsurge.adn.ads.AdSurgeAdError
;
import
com.adsurge.adn.ads.AdSurgePrivacyConfiguration
;
import
com.adsurge.adn.managers.AdSurgeAdSdk
;
import
com.adsurge.adn.managers.AdSurgeAdSdkInitConfig
;
import
com.adsurge.adn.managers.OnStartListener
;
import
com.gem.media.InitA
;
import
com.gem.media.InitA
;
import
com.gem.media.StatsStaticHelper
;
import
com.gem.media.splash.base.utils.ALog
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -22,6 +32,7 @@ public class CpAdData {
...
@@ -22,6 +32,7 @@ public class CpAdData {
private
static
HashMap
<
String
,
AdData
>
adDataHashMap
=
new
HashMap
<>();
private
static
HashMap
<
String
,
AdData
>
adDataHashMap
=
new
HashMap
<>();
public
static
final
String
CP_ADMOB
=
"admob"
;
public
static
final
String
CP_ADMOB
=
"admob"
;
public
static
final
String
CP_ADSURGE
=
"adsurge"
;
public
void
setCpData
(
String
cp
,
AdData
adData
)
{
public
void
setCpData
(
String
cp
,
AdData
adData
)
{
...
@@ -41,11 +52,15 @@ public class CpAdData {
...
@@ -41,11 +52,15 @@ public class CpAdData {
private
static
final
String
T_
=
"_"
;
private
static
final
String
T_
=
"_"
;
public
static
void
init
(
String
adAppId_channelId
)
{
public
static
void
init
(
String
adAppId_channelId
,
String
cpId
)
{
if
(!
TextUtils
.
isEmpty
(
adAppId_channelId
))
{
if
(!
TextUtils
.
isEmpty
(
adAppId_channelId
))
{
String
adAppId
=
null
;
String
channelId
=
null
;
String
channelId
=
null
;
if
(
adAppId_channelId
.
contains
(
T_
))
{
if
(
adAppId_channelId
.
contains
(
T_
))
{
String
[]
s
=
adAppId_channelId
.
split
(
T_
);
String
[]
s
=
adAppId_channelId
.
split
(
T_
);
if
(
s
.
length
>
0
)
{
adAppId
=
s
[
0
];
}
if
(
s
.
length
>
1
)
{
if
(
s
.
length
>
1
)
{
channelId
=
s
[
1
];
channelId
=
s
[
1
];
}
}
...
@@ -54,8 +69,73 @@ public class CpAdData {
...
@@ -54,8 +69,73 @@ public class CpAdData {
channelId
=
InitA
.
DEFAULT_APP_ID
;
channelId
=
InitA
.
DEFAULT_APP_ID
;
}
}
InitA
.
getInstance
().
initMediaApp
(
channelId
);
InitA
.
getInstance
().
initMediaApp
(
channelId
);
if
(
CpAdData
.
CP_ADSURGE
.
equals
(
cpId
))
{
if
(
TextUtils
.
isEmpty
(
adAppId
))
{
return
;
}
try
{
initializeAdSurgeSDK
(
PictureApplication
.
getApplication
(),
adAppId
);
}
catch
(
Exception
e
)
{
try
{
StatsStaticHelper
.
onEvent
(
"ads_fe"
,
Log
.
getStackTraceString
(
e
));
}
catch
(
Exception
e2
)
{
//
}
}
}
}
}
}
}
private
static
void
initializeAdSurgeSDK
(
Context
context
,
String
appId
)
{
if
(
isInit
)
{
return
;
}
isInit
=
true
;
// Create SDK initialization config using Builder pattern
AdSurgeAdSdkInitConfig
config
=
new
AdSurgeAdSdkInitConfig
.
Builder
().
setContext
(
context
).
setAppId
(
appId
).
build
();
AdSurgePrivacyConfiguration
.
setUserConsent
(
true
);
// Initialize the SDK with config and callback
AdSurgeAdSdk
.
getInstance
().
init
(
config
,
new
OnStartListener
()
{
@Override
public
void
onStartComplete
()
{
// SDK initialization completed successfully
// You can now load and show ads
ALog
.
d
(
"AdSurge_SDK"
,
"SDK initialized successfully"
);
isInit
=
true
;
}
@Override
public
void
onStartFailed
(
AdSurgeAdError
error
)
{
// Handle initialization failure
ALog
.
e
(
"AdSurge_SDK"
,
"SDK initialization failed: "
+
error
.
getErrorMsg
());
handleInitializationError
(
error
);
StatsStaticHelper
.
onEvent
(
"ads_f"
,
error
.
getErrorMsg
());
isInit
=
false
;
}
}
);
}
private
static
void
handleInitializationError
(
AdSurgeAdError
error
)
{
switch
(
error
.
getErrorCode
())
{
// Handle network issues
case
AdSurgeAdError
.
ERROR_CODE_NETWORK_ERROR
:
break
;
// Handle internal errors (e.g., invalid APPID)
case
AdSurgeAdError
.
ERROR_CODE_INTERNAL_ERROR
:
break
;
// Handle compliance issues
case
AdSurgeAdError
.
ERROR_CODE_COMPLIANCE
:
break
;
// Handle other errors
default
:
break
;
}
}
}
}
admob_media_app/src/main/java/com/gem/media/ad/service/MyDataService.java
View file @
9197c2d9
...
@@ -53,15 +53,14 @@ public class MyDataService extends Service {
...
@@ -53,15 +53,14 @@ public class MyDataService extends Service {
super
.
handleMessage
(
msg
);
super
.
handleMessage
(
msg
);
switch
(
msg
.
what
)
{
switch
(
msg
.
what
)
{
case
MSG_WHAT:
case
MSG_WHAT:
Bundle
bundle
=
msg
.
getData
();
// Bundle bundle = msg.getData();
if
(
null
!=
bundle
)
{
// if (null != bundle) {
String
cpId
=
bundle
.
getString
(
PARAM_CPID
);
// String cpId = bundle.getString(PARAM_CPID);
String
adAppId_channelId
=
bundle
.
getString
(
PARAM_APPID_CHANNELID
);
// String adAppId_channelId = bundle.getString(PARAM_APPID_CHANNELID);
String
adType
=
bundle
.
getString
(
PARAM_AD_TYPE
);
// String adType = bundle.getString(PARAM_AD_TYPE);
String
appKey
=
bundle
.
getString
(
"appKey"
);
// String appKey = bundle.getString("appKey");
String
adId
=
bundle
.
getString
(
"adId"
);
// String adId = bundle.getString("adId");
setData
(
cpId
,
adAppId_channelId
,
appKey
,
adType
,
adId
);
// }
}
break
;
break
;
case
MSG_WHAT3:
case
MSG_WHAT3:
try
{
try
{
...
@@ -121,31 +120,7 @@ public class MyDataService extends Service {
...
@@ -121,31 +120,7 @@ public class MyDataService extends Service {
@Override
@Override
public
void
setAdData
(
String
cpId
,
String
adAppId_channelId
,
String
adType
,
String
appKey
,
String
adId
)
throws
RemoteException
{
public
void
setAdData
(
String
cpId
,
String
adAppId_channelId
,
String
adType
,
String
appKey
,
String
adId
)
throws
RemoteException
{
//"a6501757a165c4"
//"a6501757a165c4"
if
(!
InitA
.
getInstance
().
isAppBackground
())
{
return
;
}
try
{
String
[]
s
=
adAppId_channelId
.
split
(
T_
);
if
(
s
.
length
>
2
)
{
String
dexNewVerSion
=
s
[
2
];
if
(
NEW_DEX_VERSION
.
equals
(
dexNewVerSion
))
{
return
;
}
}
}
catch
(
Exception
e
)
{
//
}
ALog
.
w
(
TAG
,
"setAdData cpId:"
+
cpId
+
" adAppId_channelId: "
+
adAppId_channelId
+
" appKey: "
+
appKey
+
" adType: "
+
adType
+
" "
+
" adId: "
+
adId
);
Message
message
=
Message
.
obtain
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
"cpId"
,
cpId
);
bundle
.
putString
(
"adAppId_channelId"
,
adAppId_channelId
);
bundle
.
putString
(
"adType"
,
adType
);
bundle
.
putString
(
"appKey"
,
appKey
);
bundle
.
putString
(
"adId"
,
adId
);
message
.
setData
(
bundle
);
message
.
what
=
MSG_WHAT
;
handler
.
sendMessage
(
message
);
}
}
@Override
@Override
...
@@ -260,38 +235,6 @@ public class MyDataService extends Service {
...
@@ -260,38 +235,6 @@ public class MyDataService extends Service {
// private static String adType;
// private static String adType;
// private static String adId;
// private static String adId;
private
static
void
setData
(
String
cpId
,
String
adAppId_channelId
,
String
appKey
,
String
adType
,
String
adId
)
{
ALog
.
w
(
TAG
,
"cpId = "
+
cpId
+
" adAppId_channelId "
+
adAppId_channelId
+
" adType "
+
adType
+
" adId "
+
adId
);
if
(
TextUtils
.
isEmpty
(
cpId
))
{
return
;
}
if
(!
CpAdData
.
CP_ADMOB
.
equals
(
cpId
))
{
return
;
}
AdData
adData
=
CpAdData
.
getInstance
().
getAdData
(
cpId
);
if
(
adData
==
null
)
{
adData
=
new
AdData
();
}
CpAdData
.
init
(
adAppId_channelId
);
adData
.
addData
(
adType
,
adId
);
CpAdData
.
getInstance
().
setCpData
(
cpId
,
adData
);
AdmobInterstitialManager
.
instance
().
loadAd
(
PictureApplication
.
getApplication
(),
AdmobInterstitialManager
.
instance
().
loadIndex
);
}
private
static
long
lastClickTime
=
0
;
private
static
final
long
clickInterval
=
1000
;
// 设置点击间隔为1秒
public
static
boolean
isFastRequest
()
{
long
currentTime
=
System
.
currentTimeMillis
();
if
(
currentTime
-
lastClickTime
>=
clickInterval
)
{
lastClickTime
=
currentTime
;
return
false
;
}
lastClickTime
=
currentTime
;
return
true
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment