parent
cd7f326b55
commit
1bcef7f347
|
|
@ -4,10 +4,10 @@
|
|||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2026-03-13T03:47:40.083936900Z">
|
||||
<DropdownSelection timestamp="2026-03-24T05:48:19.296324800Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=Y5DELZR46DZTCI9D" />
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=JRBI89BIE6AI5TG6" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
|
|
|
|||
|
|
@ -98,6 +98,11 @@ android {
|
|||
create("huawei") { dimension = "channel" }
|
||||
create("oppo") { dimension = "channel" }
|
||||
create("vivo") { dimension = "channel" }
|
||||
create("honor") { dimension = "channel" }
|
||||
create("ks_tg") { dimension = "channel" }
|
||||
create("bd_tg") { dimension = "channel" }
|
||||
create("yyb") { dimension = "channel" }
|
||||
create("baidu") { dimension = "channel" }
|
||||
|
||||
// 自动将渠道名同步给个推和友盟的渠道占位符
|
||||
all {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
<!--开关wifi状态,解决国内机型移动网络权限问题需要-->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<!--Unimp要求-->
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
<!-- 安装应用权限 -->
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
package com.img.rabbit
|
||||
|
||||
import android.app.ActivityManager
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import com.bumptech.glide.Glide
|
||||
import com.img.rabbit.utils.NetworkMonitor
|
||||
|
|
@ -27,32 +30,44 @@ class BaseApplication : Application() {
|
|||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
// 非小程序进程(使用unimp 关键字 可以根据宿主的具体情况进行调整)
|
||||
if (!RuningAcitvityUtil.getAppName(baseContext).contains("unimp")) {
|
||||
// 只有是主进程时,才执行重量级初始化
|
||||
if (getProcessName(this) == packageName) {
|
||||
Log.i(TAG, "进行必要的SDK初始化...")
|
||||
// 初始化MMKV
|
||||
initMMKV()
|
||||
// 非小程序进程(使用unimp 关键字 可以根据宿主的具体情况进行调整)
|
||||
if (PreferenceUtil.getAgreement() && !RuningAcitvityUtil.getAppName(baseContext).contains("unimp")) {
|
||||
Log.i(TAG, "已同意隐私政策,BaseApplication开始初始化SDK服务...")
|
||||
initThirdParty()
|
||||
initUM()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
//MultiDex.install(base)
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 隐私同意即可初始化
|
||||
*/
|
||||
fun initThirdParty(){
|
||||
//需要在隐私框架下才能处理的逻辑
|
||||
if(PreferenceUtil.getAgreement()){
|
||||
Log.i(TAG, "用户已同意隐私政策,开始初始化第三方服务")
|
||||
// 初始化网络状态监控
|
||||
NetworkMonitor.initialize(this)
|
||||
//初始化Glide
|
||||
Glide.get(this)
|
||||
// 初始化MMKV
|
||||
initMMKV()
|
||||
// 初始化个推SDK
|
||||
initGeTuiOneKeyLogin()
|
||||
// 初始化OAID和uni-app SDK
|
||||
initOAIDAndUniAPPSdk()
|
||||
//需要在隐私框架下才能处理的逻辑
|
||||
if(PreferenceUtil.getAgreement()){
|
||||
//用户已同意隐私政策
|
||||
// 初始化友盟(每次启动时检查协议是否同意,如同意进行初始化)
|
||||
initUM()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun attachBaseContext(base: android.content.Context?) {
|
||||
//MultiDex.install(base)
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -77,26 +92,22 @@ class BaseApplication : Application() {
|
|||
}
|
||||
|
||||
private fun initMMKV() {
|
||||
val rootDir = MMKV.initialize(this)
|
||||
Log.i(TAG, "MMKV root dir: $rootDir")
|
||||
MMKV.initialize(this)
|
||||
}
|
||||
|
||||
private fun initOAIDAndUniAPPSdk() {
|
||||
if(PreferenceUtil.getOAID().isNullOrEmpty()){
|
||||
DeviceID.getOAID(this, object : IGetter{
|
||||
override fun onOAIDGetComplete(result: String?) {
|
||||
Log.i(TAG, "获取OAID成功,OAID: $result ,开始记录OAID,并初始化Uni-app SDK----->")
|
||||
PreferenceUtil.saveOAID(result)
|
||||
initUniAPPSdk()
|
||||
}
|
||||
|
||||
override fun onOAIDGetError(error: Exception?) {
|
||||
Log.i(TAG, "获取OAID失败,开始初始化Uni-app SDK----->")
|
||||
initUniAPPSdk()
|
||||
}
|
||||
})
|
||||
}else{
|
||||
Log.i(TAG, "已识别到OAID,开始初始化Uni-app SDK----->")
|
||||
initUniAPPSdk()
|
||||
}
|
||||
}
|
||||
|
|
@ -124,4 +135,20 @@ class BaseApplication : Application() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun getProcessName(context: Context): String? {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
return getProcessName()
|
||||
}
|
||||
|
||||
val am = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
|
||||
val runningApps = am.runningAppProcesses ?: return null
|
||||
for (proInfo in runningApps) {
|
||||
if (proInfo.pid == android.os.Process.myPid()) {
|
||||
return proInfo.processName
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -281,6 +281,7 @@ class MainActivity : ComponentActivity(), LoadingCallback {
|
|||
if (isAllowPrivacyPolicy) {
|
||||
generalViewModel.setIsAgreement(true)
|
||||
loginViewModel.setIsPolicyAgreement(true)
|
||||
(applicationContext as BaseApplication).initThirdParty()
|
||||
initUM()
|
||||
showSplash = true
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue