diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 47b1106..7bf7db2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,7 @@ plugins { dependencies { implementation(fileTree(mapOf("dir" to "src/main/libs", "include" to listOf("*.aar")))) implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") + implementation(files("src\\main\\libs\\OpenInstall_v2.8.5.jar")) // implementation("com.google.firebase:firebase-crashlytics-buildtools:3.0.2") // implementation(files("src/main/libs/openinstall.jar")) @@ -123,6 +124,8 @@ dependencies { api ("com.huawei.hms:ads-identifier:3.4.62.300") // 荣耀的最新版本广告标识服务SDK,参阅 https://developer.hihonor.com/cn/kitdoc?kitId=11030&navigation=guides&docId=intergrate.md api ("com.hihonor.mcs:ads-identifier:1.0.2.301") + implementation("com.android.installreferrer:installreferrer:2.2")// 使用最新版本 + } tasks.getByName("clean", type = Delete::class) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a849108..55ed4c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -56,6 +56,14 @@ android:name="releaseCode" android:value="@integer/release_code" /> + + + + + + + + + + + + - + + + diff --git a/app/src/main/java/com/yingmao/clash/act/SplashActivity.kt b/app/src/main/java/com/yingmao/clash/act/SplashActivity.kt index 4dff88b..7913679 100644 --- a/app/src/main/java/com/yingmao/clash/act/SplashActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/SplashActivity.kt @@ -23,11 +23,18 @@ import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.customview.customView import com.bumptech.glide.Glide import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition +import com.cncat.vpn.service.ClashManager +import com.cncat.vpn.service.remote.IClashManager +import com.cncat.vpn.service.remote.wrap +import com.fm.openinstall.OpenInstall +import com.fm.openinstall.listener.AppWakeUpAdapter +import com.fm.openinstall.model.AppData import com.google.gson.JsonObject import com.orhanobut.logger.Logger import com.tencent.mmkv.MMKV @@ -42,31 +49,27 @@ import com.yingmao.clash.conf.BZYConstants.Companion.MMKV_KEY_NOTE_DEFAULT_PSW import com.yingmao.clash.conf.BZYConstants.Companion.MMKV_KEY_REMEMBER_PASSWORD import com.yingmao.clash.conf.BZYConstants.Companion.MMKV_KEY_REMEMBER_USERNAME import com.yingmao.clash.entity.CheckLoginRsp -import com.yingmao.clash.listener.AsyncCallback +import com.yingmao.clash.listener.DownLoadListener import com.yingmao.clash.net.http.HttpReqType import com.yingmao.clash.net.http.HttpStatus +import com.yingmao.clash.net.http.entity.AppVersionCheckRsp import com.yingmao.clash.net.http.entity.LoginRsp import com.yingmao.clash.net.http.entity.RegisterRsp -import com.cncat.vpn.service.ClashManager -import com.cncat.vpn.service.remote.IClashManager -import com.cncat.vpn.service.remote.wrap -import com.yingmao.clash.listener.DownLoadListener -import com.yingmao.clash.net.http.entity.AppVersionCheckRsp import com.yingmao.clash.net.http.entity.StartingBeans import com.yingmao.clash.util.AESUtil import com.yingmao.clash.util.Utils import com.yingmao.clash.view.RxToast import com.yingmao.clash.view.dialog.DialogAppVersion -import com.yingmao.clash.view.dialog.DialogBandChoose import com.yingmao.clash.view.dialog.DialogDoMainChoose import com.yingmao.clash.view.dialog.RxDialogSureCancel import com.yingmao.clash.vm.SplashAtyVM import kotlinx.coroutines.MainScope +import kotlinx.coroutines.async import kotlinx.coroutines.launch import java.io.File import java.util.Locale -import androidx.lifecycle.lifecycleScope -import kotlinx.coroutines.async + + class SplashActivity : BaseActivity() { private val deniedPermissions = hashSetOf() @@ -249,8 +252,38 @@ class SplashActivity : BaseActivity() { // val Sgtr= AESUtil.Registerdecrypt("CCBF308D702235C8F810876987A43AB02B84EBB47DBFF1B915D5FBB29FF2DBAE90DB72D58351D09D223D49E44A2A073D9156E84D6B7EB89D7493A3F0A7240EE076ADC83B5A12AC37616CEDED00643AD1E6851AFECA82E373CB4E518DF2190708F5191AE195758E8EA41A5242A6C94216B64FF8715B35C54CB894113FC93361F32FDA86CF34093DF924230DEBE27A69293C761A9A797A652A1C35C95C27FB5EB4" // ,registerKey,registerIV2) // println("Sgtr==>$Sgtr") + + + OpenInstall.getWakeUp(intent, wakeUpAdapter) + OpenInstall.getInstall { appData, error -> + var appData = appData + if (error != null && error.shouldRetry()) { + // 获取数据异常,可以尝试重新获取 + } else { + if (appData == null) appData = AppData() + val channelCode = appData.getChannel() // 获取渠道编号参数 + val bindData = appData.getData() // 获取自定义参数 + Log.d("OpenInstall", "getInstall : channelCode = $channelCode"+"bindData::"+bindData) + } + } + } + private var wakeUpAdapter: AppWakeUpAdapter = object : AppWakeUpAdapter() { + override fun onWakeUp(appData: AppData) { + // 打印数据便于调试 + Log.d("OpenInstall", "getWakeUp : wakeupData = $appData") + // 获取渠道编号参数 + val channelCode = appData.getChannel() + // 获取自定义参数 + val bindData = appData.getData() + Log.d("OpenInstall", "channelCode : bindData = $channelCode"+"bindData::"+bindData) + } } + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + // 此处要调用,否则App在后台运行时,会无法获取 + OpenInstall.getWakeUp(intent, wakeUpAdapter) + } private fun setLocalLanguage() { var defLan = "" if (BuildConfig.is_tz) { diff --git a/app/src/main/java/com/yingmao/clash/app/MainApplication.kt b/app/src/main/java/com/yingmao/clash/app/MainApplication.kt index b5a01cc..ea7cee6 100644 --- a/app/src/main/java/com/yingmao/clash/app/MainApplication.kt +++ b/app/src/main/java/com/yingmao/clash/app/MainApplication.kt @@ -15,6 +15,7 @@ import androidx.core.content.getSystemService import com.cncat.vpn.common.Global import com.cncat.vpn.common.compat.currentProcessName import com.cncat.vpn.common.log.Log +import com.fm.openinstall.OpenInstall import com.github.gzuliyujiang.oaid.DeviceID import com.github.gzuliyujiang.oaid.DeviceIdentifier import com.github.gzuliyujiang.oaid.IGetter @@ -149,6 +150,8 @@ class MainApplication : Application() { applicationContext, "pk_live_51Nkl6vLWP3xWXY4LfXtdMtXzHazv6pav2rH1p1BfICeh5meGGjglExiw4GgmSzWO7NptEM1c549Fe11zRy9nCfxs009zEwLpXP" ) + OpenInstall.preInit(applicationContext) + OpenInstall.init(applicationContext) } fun updateActivity(language: String, locale: Locale) { diff --git a/app/src/main/libs/OpenInstall_v2.8.5.jar b/app/src/main/libs/OpenInstall_v2.8.5.jar new file mode 100644 index 0000000..6d48a06 Binary files /dev/null and b/app/src/main/libs/OpenInstall_v2.8.5.jar differ