Commit 6b5d46a8 authored by wanglei's avatar wanglei

[迭代]

parent 033b8e0a
......@@ -33,7 +33,9 @@ import com.simplecleaner.app.push.receiver.ScreenStatusReceiver
import com.simplecleaner.app.ui.batteryinfo.BatteryReceiver.Companion.registerBatteryReceiver
import com.simplecleaner.app.ui.splash.SplashActivity
import com.facebook.appevents.AppEventsLogger
import com.simplecleaner.app.SpConstObject.appUuid
import com.simplecleaner.app.business.push.receiver.AlarmReceiver.Companion.startAlarm
import com.simplecleaner.app.business.push.receiver.PackageReceiver
import com.simplecleaner.app.business.push.timer.TimerManager.Companion.changeTimer
import com.simplecleaner.app.business.push.work.RepeatingWorker.Companion.schedulePeriodicWork
import kotlinx.coroutines.Dispatchers
......@@ -101,8 +103,8 @@ class MyApplication : Application() {
private fun initGid() = MainScope().launch(Dispatchers.IO) {
try {
val info: AdvertisingIdClient.Info = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext)
val advertisingId = info.id
AppPreferences.getInstance().put("gid", advertisingId)
val advertisingId = info.id ?: "null"
SpConstObject.gid = advertisingId
} catch (e: Exception) {
EventUtils.event("gid_exception")
}
......@@ -114,10 +116,10 @@ class MyApplication : Application() {
}
private fun initUUid() {
uuid = AppPreferences.getInstance().getString("uuid", "")
uuid = appUuid
if (TextUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString() + System.currentTimeMillis()
AppPreferences.getInstance().put("uuid", uuid)
appUuid = uuid
LogEx.logDebug(TAG, "uuid=$uuid")
}
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
......@@ -155,15 +157,13 @@ class MyApplication : Application() {
startStayJobService()
}
// val token = AppPreferences.getInstance().getString("token", "")
val topic = GlobalConfig.PACKAGE_NAME + "_push"
// LogEx.logDebug(TAG, "topic=${topic} token=$token")
FCMManager.initFirebase(this)
FCMManager.subscribeToTopic(topic)
changeTimer()
ScreenStatusReceiver.registerScreenStatusReceiver(this)
// PackageStatusReceiver.registerPackageStatusReceiver(this)
PackageReceiver.register(this)
registerBatteryReceiver(this)
//workManager
......
......@@ -5,6 +5,24 @@ import java.util.Locale
object SpConstObject {
var appUuid = ""
get() {
return AppPreferences.getInstance().getString("uuid", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("uuid", value, true)
}
var gid = ""
get() {
return AppPreferences.getInstance().getString("gid", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("gid", value, true)
}
//是否已经点击start
var ifAgreePrivacy = false
......
......@@ -4,8 +4,9 @@ import android.os.Build
import com.simplecleaner.app.BuildConfig
import com.simplecleaner.app.SpConstObject.ifAgreePrivacy
import com.simplecleaner.app.GlobalConfig
import com.simplecleaner.app.SpConstObject
import com.simplecleaner.app.bean.config.ConfigBean
import com.simplecleaner.app.utils.AppPreferences
import com.simplecleaner.app.business.helper.InstallHelps.installEvent
import com.simplecleaner.app.utils.LogEx
import okhttp3.Call
import okhttp3.Callback
......@@ -50,8 +51,8 @@ object EventUtils {
jsonObject.put("${packageName}_4", Build.MANUFACTURER) // 手机厂商
jsonObject.put("${packageName}_5", Build.VERSION.SDK_INT) // android系统版本号
jsonObject.put("${packageName}_8", BuildConfig.VERSION_NAME) // APP版本号,如:1.1.2
jsonObject.put("${packageName}_9", AppPreferences.getInstance().getString("uuid", "")) // Android id
jsonObject.put("${packageName}_10", AppPreferences.getInstance().getString("gid", "")) // Google advertiser id
jsonObject.put("${packageName}_9", SpConstObject.appUuid) // Android id
jsonObject.put("${packageName}_10", SpConstObject.gid) // Google advertiser id
jsonObject.put("${packageName}_13", "android") // platform 默认android
jsonObject.put("${packageName}_14", BuildConfig.VERSION_CODE)// android版本,如:13
jsonObject.put("${packageName}_15", "google") // 渠道标识
......@@ -97,6 +98,9 @@ object EventUtils {
override fun onResponse(call: Call, response: Response) {
if (response.code == 200 && response.isSuccessful) {
LogEx.logDebug(TAG, "onResponse 200")
if (key == "install_referrer") {
installEvent = true
}
}
}
})
......
......@@ -2,10 +2,10 @@ package com.simplecleaner.app.business.helper
import com.android.installreferrer.api.InstallReferrerClient
import com.android.installreferrer.api.InstallReferrerStateListener
import com.android.installreferrer.api.ReferrerDetails
import com.simplecleaner.app.BuildConfig
import com.simplecleaner.app.MyApplication
import com.simplecleaner.app.utils.AppPreferences
import com.simplecleaner.app.utils.LogEx
import org.json.JSONObject
/**
......@@ -15,14 +15,53 @@ object InstallHelps {
private val TAG = "InstallHelps"
var installReferrer = ""
get() {
return AppPreferences.getInstance().getString("install_referrer", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("install_referrer", value, true)
}
//用户来源
var installSource = ""
get() {
return AppPreferences.getInstance().getString("install_source", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("install_source", value, true)
}
//用户是否上报过
var installEvent = false
get() {
return AppPreferences.getInstance().getBoolean("installEvent", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("installEvent", value, true)
}
fun eventInstallReferrer(response: ReferrerDetails) {
val obj = JSONObject()
obj.put("referrerUrl", response.installReferrer)
obj.put("referrerClickTime", response.referrerClickTimestampSeconds)
obj.put("appInstallTime", response.installBeginTimestampSeconds)
obj.put("instantExperienceLaunched", response.installReferrer.toString())
EventUtils.event("install_referrer", ext = obj)
}
fun init(requestCfg: () -> Unit) {
val installReferrer = AppPreferences.getInstance().getString("install_referrer", "")
if (installReferrer.isNotEmpty()) {
if (installEvent) {
requestCfg.invoke()
return
}
val referrerClient = InstallReferrerClient.newBuilder(MyApplication.appContext).build()
referrerClient.startConnection(object : InstallReferrerStateListener {
override fun onInstallReferrerSetupFinished(responseCode: Int) {
......@@ -30,31 +69,26 @@ object InstallHelps {
when (responseCode) {
InstallReferrerClient.InstallReferrerResponse.OK -> {
val response = referrerClient.installReferrer
val installInfo = response.installReferrer
val obj = JSONObject()
obj.put("referrerUrl", response.installReferrer)
obj.put("referrerClickTime", response.referrerClickTimestampSeconds)
obj.put("appInstallTime", response.installBeginTimestampSeconds)
obj.put("instantExperienceLaunched", installInfo.toString())
EventUtils.event("install_referrer", ext = obj)
LogEx.logDebug(TAG, "referrerUrl=${response.installReferrer}")
AppPreferences.getInstance().put("install_referrer", response.installReferrer)
if (listOf(
installReferrer = response.installReferrer
eventInstallReferrer(response)
installSource = if (listOf(
"gclid",
"facebook",
"instagram"
).all { !installInfo.contains(it, true) }
).all { !response.installReferrer.contains(it, true) }
) {
//自然用户
if (BuildConfig.DEBUG) {
AppPreferences.getInstance().put("install_source", "channel")
"channel"
} else {
AppPreferences.getInstance().put("install_source", "origin")
"origin"
}
} else {
//渠道用户
AppPreferences.getInstance().put("install_source", "channel")
"channel"
}
requestCfg()
}
......
......@@ -11,6 +11,7 @@ import com.simplecleaner.app.bean.config.PopupConfigBean
import com.simplecleaner.app.utils.AppPreferences
import com.simplecleaner.app.utils.LogEx
import com.google.gson.Gson
import com.simplecleaner.app.SpConstObject
import okhttp3.Call
import okhttp3.Callback
import okhttp3.OkHttpClient
......@@ -63,8 +64,8 @@ object NewComUtils {
"&referrer=${bRefer}" +
"&vn=${BuildConfig.VERSION_NAME}" +
"&vc=${BuildConfig.VERSION_CODE}" +
"&device=${AppPreferences.getInstance().getString("gid", "")}" +
"&aid=${AppPreferences.getInstance().getString("uuid", "")}"
"&device=${SpConstObject.gid}" +
"&aid=${SpConstObject.appUuid}"
if (BuildConfig.DEBUG) {
s = "$s&mode=4"
......
package com.simplecleaner.app.business.push.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import com.simplecleaner.app.bean.push.NotificationSendBean
import com.simplecleaner.app.bean.push.NotificationSendBean.Companion.POPUP_WHERE_PACKAGE
import com.simplecleaner.app.business.push.notification.MyNotificationManager
class PackageReceiver : BroadcastReceiver() {
companion object {
fun register(context: Context) {
val intentFilter = IntentFilter().apply {
addAction(Intent.ACTION_PACKAGE_REMOVED)
addAction(Intent.ACTION_PACKAGE_ADDED)
addDataScheme("package")
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
context.registerReceiver(PackageReceiver(), intentFilter, Context.RECEIVER_EXPORTED)
} else {
context.registerReceiver(PackageReceiver(), intentFilter)
}
}
}
override fun onReceive(context: Context, intent: Intent?) {
MyNotificationManager.submitSendBean(NotificationSendBean(context, POPUP_WHERE_PACKAGE))
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment