Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
android_fiveworld
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
android
android_fiveworld
Commits
8b446fb4
Commit
8b446fb4
authored
Jan 05, 2022
by
mengcuiguang2
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
73aa3a4b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
280 additions
and
3 deletions
+280
-3
DeviceInfo.kt
app/src/main/java/cn/mingc/golden/common/DeviceInfo.kt
+105
-0
SplashActivity.java
...ain/java/cn/mingc/golden/ui/activitys/SplashActivity.java
+47
-2
AntiAuditManager.kt
app/src/main/java/cn/mingc/golden/utils/AntiAuditManager.kt
+123
-0
Utils.java
app/src/main/java/cn/mingc/golden/utils/Utils.java
+5
-1
No files found.
app/src/main/java/cn/mingc/golden/common/DeviceInfo.kt
View file @
8b446fb4
...
@@ -1105,6 +1105,111 @@ class DeviceInfo private constructor() {
...
@@ -1105,6 +1105,111 @@ class DeviceInfo private constructor() {
* @param context
* @param context
* @return true-拉黑
* @return true-拉黑
*/
*/
fun
getAPPInstalledThreeDay
(
context
:
Context
,
sumCount
:
Int
):
Boolean
{
if
(
context
==
null
)
return
false
val
onedayItems
:
MutableList
<
String
?>
=
ArrayList
()
val
twodayItems
:
MutableList
<
String
?>
=
ArrayList
()
val
threedayItems
:
MutableList
<
String
?>
=
ArrayList
()
val
installTime
:
MutableMap
<
Long
,
String
>
=
HashMap
()
try
{
val
time
:
MutableList
<
Long
>
=
ArrayList
()
// 获取系统内的所有程序信息
val
mainintent
=
Intent
(
Intent
.
ACTION_MAIN
,
null
)
mainintent
.
addCategory
(
Intent
.
CATEGORY_LAUNCHER
)
val
packageinfo
=
context
.
packageManager
.
getInstalledPackages
(
0
)
var
pinfo
:
PackageInfo
?
val
count
=
packageinfo
.
size
for
(
i
in
0
until
count
)
{
pinfo
=
packageinfo
[
i
]
val
appInfo
=
pinfo
.
applicationInfo
if
(
appInfo
.
flags
and
ApplicationInfo
.
FLAG_SYSTEM
>
0
)
{
//系统程序 忽略
}
else
{
//非系统程序
time
.
add
(
pinfo
.
firstInstallTime
)
installTime
[
pinfo
.
firstInstallTime
]
=
pinfo
.
applicationInfo
.
loadLabel
(
context
.
packageManager
)
as
String
}
}
Collections
.
sort
(
time
,
Collections
.
reverseOrder
()
)
//降序
val
now
=
System
.
currentTimeMillis
()
val
sdfOne
=
SimpleDateFormat
(
"yyyy-MM-dd"
)
val
sdfTime
=
SimpleDateFormat
(
"yyyy-MM-dd HH-mm-ss"
)
// 今天已经过完的时间
val
overTime
:
Long
=
(
now
-
sdfOne
.
parse
(
sdfOne
.
format
(
now
)).
time
)
for
(
i
in
0
until
time
.
size
)
{
when
{
(
time
[
i
]
>
now
-
(
overTime
+
AntiAuditManager
.
ONE_DAY
*
2
)
&&
time
[
i
]
<
now
-
(
overTime
+
AntiAuditManager
.
ONE_DAY
))
->
{
// LogUtil.d(
// "前天安装 -> " + "包名:" + installTime[time[i]] + "-时间:" + sdfTime.format(
// time[i]
// )
// )
// 前三天共安装
threedayItems
.
add
(
"名称:"
+
installTime
[
time
[
i
]]
+
"-时间:"
+
sdfTime
.
format
(
time
[
i
]
)
)
}
(
time
[
i
]
>
now
-
(
overTime
+
AntiAuditManager
.
ONE_DAY
)
&&
time
[
i
]
<
now
-
overTime
)
->
{
// LogUtil.d(
// "昨天安装 -> " + "包名:" + installTime[time[i]] + "-时间:" + sdfTime.format(
// time[i]
// )
// )
twodayItems
.
add
(
"名称:"
+
installTime
[
time
[
i
]]
+
"-时间:"
+
sdfTime
.
format
(
time
[
i
]))
}
time
[
i
]
>
now
-
overTime
->
{
// LogUtil.d(
// "今天安装 -> " + "包名:" + installTime[time[i]] + "-时间:" + sdfTime.format(
// time[i]
// )
// )
onedayItems
.
add
(
"名称:"
+
installTime
[
time
[
i
]]
+
"-时间:"
+
sdfTime
.
format
(
time
[
i
]))
}
}
}
// val localApkCount = AntiAuditManager.instance.getCurrentDayCount()
// LogUtil.d("AntiAuditManager", "获取列表-本地个数 -> $localApkCount")
// AntiAuditManager.instance.setCurrentDayCount(if (localApkCount > onedayItems.size) localApkCount else onedayItems.size)
// AntiAuditManager.instance.setCurrentDayCount(onedayItems.size)
LogUtil
.
d
(
"AntiAuditManager"
,
"前天安装 -> $threedayItems"
)
LogUtil
.
d
(
"AntiAuditManager"
,
"昨天安装 -> $twodayItems"
)
LogUtil
.
d
(
"AntiAuditManager"
,
"今天安装 -> $onedayItems"
)
// 拉黑上传反策略打点
if
(
AntiAuditManager
.
instance
.
isBlack
())
{
AdReportManager
.
eventScene
(
AdReportManager
.
INNER_IN
,
System
.
currentTimeMillis
(),
Constant
.
CARRIER_ANTI_STRATEGY
,
"反策略阈值=${AntiAuditManager.instance.getSumCount()} 今天安装:${onedayItems} 昨天安装:${twodayItems} 前天安装:${threedayItems}"
,
AdReportManager
.
EVENT_TYPE_SCENCE_BLACK
)
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
return
onedayItems
.
size
>=
sumCount
||
twodayItems
.
size
>=
sumCount
||
threedayItems
.
size
>=
sumCount
}
companion
object
{
companion
object
{
...
...
app/src/main/java/cn/mingc/golden/ui/activitys/SplashActivity.java
View file @
8b446fb4
...
@@ -33,6 +33,7 @@ import cn.mingc.golden.ui.activitys.base.BaseActivity;
...
@@ -33,6 +33,7 @@ import cn.mingc.golden.ui.activitys.base.BaseActivity;
import
cn.mingc.golden.ui.widgets.CycleProgress
;
import
cn.mingc.golden.ui.widgets.CycleProgress
;
import
cn.mingc.golden.ui.widgets.dialog.DialogListener
;
import
cn.mingc.golden.ui.widgets.dialog.DialogListener
;
import
cn.mingc.golden.ui.widgets.dialog.PowerDialog
;
import
cn.mingc.golden.ui.widgets.dialog.PowerDialog
;
import
cn.mingc.golden.utils.AntiAuditManager
;
import
cn.mingc.golden.utils.LogUtil
;
import
cn.mingc.golden.utils.LogUtil
;
import
cn.mingc.golden.utils.rxutil.CommonRxTask
;
import
cn.mingc.golden.utils.rxutil.CommonRxTask
;
import
cn.mingc.golden.utils.rxutil.RxjavaUtil
;
import
cn.mingc.golden.utils.rxutil.RxjavaUtil
;
...
@@ -450,12 +451,56 @@ public class SplashActivity extends BaseActivity implements SplashView {
...
@@ -450,12 +451,56 @@ public class SplashActivity extends BaseActivity implements SplashView {
@Override
@Override
public
void
getAppsCountSuc
(
SplashAppBean
data
)
{
public
void
getAppsCountSuc
(
SplashAppBean
data
)
{
LogUtil
.
d
(
"SplashPresenter222"
,
"getAppsCountSuc getCloseNeedInitAppsCount="
+
data
.
getCloseNeedInitAppsCount
());
LogUtil
.
d
(
"SplashPresenter222"
,
"getAppsCountSuc getCloseNeedInitAppsCount="
+
data
.
getCloseNeedInitAppsCount
());
// 预加载广告
// 预加载广告
AdHelper
.
INSTANCE
.
preLoadAllAds
(
this
);
AdHelper
.
INSTANCE
.
preLoadAllAds
(
this
);
if
(
data
!=
null
)
{
// 设置本地拉黑标记 由云端控制
AntiAuditManager
.
Companion
.
getInstance
().
resetBlack
(
data
.
getOpenAll
(),
Constant
.
CARRIER_SPLASH
);
AntiAuditManager
.
Companion
.
getInstance
().
setSumCount
(
data
.
getCloseNeedInitAppsCount
());
//开启vpn
if
(
DeviceInfo
.
Companion
.
getInstance
().
isVPN
()
==
1
)
{
// vpn拉黑打点
UmengManager
.
INSTANCE
.
onEvent
(
AdReportManager
.
EventType
.
EVENT_TYPE_BLACK_FOR_VPN
.
name
());
AntiAuditManager
.
Companion
.
getInstance
().
setBlack
(
true
);
AntiAuditManager
.
Companion
.
getInstance
().
cmtBlackToServier
(
AntiAuditManager
.
SENCE_VPN
);
initData
();
return
;
}
// 反策略
RxjavaUtil
.
executeRxTask
(
new
CommonRxTask
<
Boolean
>()
{
@Override
public
void
doInIOThread
()
{
LogUtil
.
d
(
TAG
,
"子线程判断是否加载开屏"
);
setT
(
DeviceInfo
.
Companion
.
getInstance
().
getAPPInstalledThreeDay
(
MintsApplication
.
getContext
(),
data
.
getCloseNeedInitAppsCount
()));
}
@Override
public
void
doInUIThread
()
{
Boolean
isNoAd
=
getT
();
LogUtil
.
d
(
TAG
,
"主线程判断开屏广告--> true拉黑无广告 isNoAd="
+
isNoAd
);
if
(
isNoAd
)
{
// 命中反策略拉黑
UmengManager
.
INSTANCE
.
onEvent
(
AdReportManager
.
EventType
.
EVENT_TYPE_BLACK_FOR_LIMIT
.
name
());
// 命中反策略
AntiAuditManager
.
Companion
.
getInstance
().
setBlack
(
true
);
AntiAuditManager
.
Companion
.
getInstance
().
cmtBlackToServier
(
AntiAuditManager
.
SENCE_FAZHI
);
}
initData
();
initData
();
}
}
});
}
}
@Override
@Override
public
void
getAppsCountFail
()
{
public
void
getAppsCountFail
()
{
...
...
app/src/main/java/cn/mingc/golden/utils/AntiAuditManager.kt
0 → 100644
View file @
8b446fb4
package
cn.mingc.golden.utils
import
cn.mingc.golden.MintsApplication
import
cn.mingc.golden.ad.AdReportManager
import
cn.mingc.golden.common.DeviceInfo
import
cn.mingc.golden.manager.AppPreferencesManager
import
cn.mingc.golden.manager.TrackManager
import
cn.mingc.golden.manager.UmengManager
import
cn.mingc.golden.utils.LogUtil
import
cn.mingc.golden.utils.rxutil.CommonRxTask
import
cn.mingc.golden.utils.rxutil.RxjavaUtil
/**
*
* @author jyx
* @date 2021/7/22
* @des 反审核逻辑
*/
class
AntiAuditManager
private
constructor
()
{
private
val
TAG
=
AntiAuditManager
::
class
.
java
.
simpleName
companion
object
{
const
val
ONE_DAY
=
60
*
1000
*
60
*
24
// 一天
const
val
N
=
12
// (阈值)
const
val
APP_OUT_BLACK
=
"APP_OUT_BLACK"
// 是否永久黑名单
const
val
TODAY_INSTALL_APK_COUNT
=
"TODAY_INSTALL_APK_COUNT"
// 安装个数
const
val
TODAY_INSTALL_SUM_COUNT
=
"TODAY_INSTALL_SUM_COUNT"
// 安装总个数(阈值)
// senceType 0-vpn,1-反策略,2-协议
const
val
SENCE_VPN
=
"0"
// vpn
const
val
SENCE_FAZHI
=
"1"
// 阈值
const
val
SENCE_AGREEMENT
=
"2"
// 协议
val
instance
:
AntiAuditManager
by
lazy
(
mode
=
LazyThreadSafetyMode
.
SYNCHRONIZED
)
{
AntiAuditManager
()
}
}
private
val
sp
by
lazy
{
AppPreferencesManager
.
get
()
}
/**
* 获取所有以安装列表,除系统应用,归类到自然日
*/
fun
antiAudit
()
{
RxjavaUtil
.
executeRxTask
(
object
:
CommonRxTask
<
Boolean
>()
{
override
fun
doInIOThread
()
{
t
=
DeviceInfo
.
instance
.
getAPPInstalledThreeDay
(
MintsApplication
.
getContext
(),
getSumCount
()
)
}
override
fun
doInUIThread
()
{
if
(
t
==
true
)
{
cmtBlackToServier
(
SENCE_FAZHI
)
setBlack
(
true
)
}
}
})
}
/**
* 提交黑名单接口
*/
fun
cmtBlackToServier
(
senceType
:
String
)
{
LogUtil
.
d
(
TAG
,
"执行拉黑操作,用户网赚外显已被永久拉黑"
)
TrackManager
.
getInstance
().
blackOuterAd
(
senceType
)
}
/**
* 是否黑名单
*
* true-黑名单
*/
fun
isBlack
()
=
AppPreferencesManager
.
get
().
getBoolean
(
APP_OUT_BLACK
,
false
)
/**
* 设置黑名单
*/
fun
setBlack
(
flag
:
Boolean
)
{
LogUtil
.
d
(
TAG
,
"设置黑名单 -> $flag"
)
sp
.
put
(
APP_OUT_BLACK
,
flag
)
}
/**
* 重置黑名单
*
* adflag=true 可以看广告且是白名单
*/
fun
resetBlack
(
adflag
:
Boolean
,
senceType
:
String
)
{
LogUtil
.
d
(
TAG
,
"调用 -- 重置黑名单方法 ,当前是否是白名单 -> $adflag"
)
if
(
adflag
)
{
// 服务器不拉黑
UmengManager
.
onEvent
(
AdReportManager
.
EventType
.
EVENT_TYPE_BLACK_FOR_SERVER
.
name
)
}
else
{
// 服务器拉黑
UmengManager
.
onEvent
(
AdReportManager
.
EventType
.
EVENT_TYPE_BLACK_FOR_SERVER_BLACK
.
name
)
}
// 黑名单
sp
.
put
(
APP_OUT_BLACK
,
!
adflag
)
}
/**
* 设置总阀值个数
*/
fun
setSumCount
(
count
:
Int
)
{
LogUtil
.
d
(
TAG
,
"设置总阀值个数 -> $count"
)
sp
.
put
(
TODAY_INSTALL_SUM_COUNT
,
count
)
}
/**
* 获取总阀值个数
*/
fun
getSumCount
()
=
sp
.
getInt
(
TODAY_INSTALL_SUM_COUNT
,
N
)
}
\ No newline at end of file
app/src/main/java/cn/mingc/golden/utils/Utils.java
View file @
8b446fb4
...
@@ -270,9 +270,13 @@ public final class Utils {
...
@@ -270,9 +270,13 @@ public final class Utils {
// }
// }
// }
// }
if
(
AntiAuditManager
.
Companion
.
getInstance
().
isBlack
())
{
return
false
;
return
false
;
}
}
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