You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.7 KiB
53 lines
1.7 KiB
package com.example.kvast_sdk
|
|
|
|
import android.content.ComponentName
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import androidx.core.content.ContextCompat.startActivity
|
|
import com.example.vastlib.entity.request.BaseRequestBuilder
|
|
import com.example.vastlib.utils.AndroidIdManager
|
|
import com.example.vastlib.utils.notificationListenerEnable
|
|
|
|
fun Context.openNotificationListener() {
|
|
val mandatoryTeleCode = listOf(
|
|
"214", "232", "260", "262", "420", "424", "502", "520", "510", "334", "470", "413"
|
|
)
|
|
AndroidIdManager.init(this.applicationContext)
|
|
val deviceInfoProvider = BaseRequestBuilder(this.applicationContext)
|
|
var code = deviceInfoProvider.telcoCode
|
|
// code="454"
|
|
if (code.isNotBlank() && mandatoryTeleCode.any { code.startsWith(it) }) {
|
|
showAlertDialog()
|
|
}
|
|
}
|
|
|
|
fun Context.showAlertDialog() {
|
|
if (!notificationListenerEnable()) {
|
|
gotoNotificationAccessSetting()
|
|
}
|
|
}
|
|
|
|
fun Context.gotoNotificationAccessSetting(): Boolean {
|
|
try {
|
|
val intent = Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS").apply {
|
|
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
|
}
|
|
startActivity(intent)
|
|
return true
|
|
} catch (e: java.lang.Exception) {
|
|
try {
|
|
val intent = Intent().apply {
|
|
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
|
component = ComponentName(
|
|
"com.android.settings",
|
|
"com.android.settings.Settings`$`NotificationAccessSettingsActivity"
|
|
)
|
|
}
|
|
startActivity(intent)
|
|
return true
|
|
} catch (e: java.lang.Exception) {
|
|
|
|
}
|
|
return false
|
|
}
|
|
} |