Support new SACC fields in Android 12
This commit is contained in:
10
README.md
10
README.md
@@ -154,6 +154,7 @@ Greylisted/blacklisted APIs or internal constants: (some constants are hardcoded
|
|||||||
* (since API 30) `Landroid/net/ConnectivityModuleConnector;->IN_PROCESS_SUFFIX:Ljava/lang/String;`
|
* (since API 30) `Landroid/net/ConnectivityModuleConnector;->IN_PROCESS_SUFFIX:Ljava/lang/String;`
|
||||||
* (since API 30) `Landroid/net/TetheringManager$TetheringEventCallback;->onTetherableInterfaceRegexpsChanged(Landroid/net/TetheringManager$TetheringInterfaceRegexps;)V,blocked`
|
* (since API 30) `Landroid/net/TetheringManager$TetheringEventCallback;->onTetherableInterfaceRegexpsChanged(Landroid/net/TetheringManager$TetheringInterfaceRegexps;)V,blocked`
|
||||||
* (since API 30) `Landroid/net/TetheringManager;->TETHERING_WIGIG:I,blocked`
|
* (since API 30) `Landroid/net/TetheringManager;->TETHERING_WIGIG:I,blocked`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setUserConfiguration(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,blocked`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->BAND_TYPES:[I,blocked`
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->BAND_TYPES:[I,blocked`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApInfo;->getApInstanceIdentifier()Ljava/lang/String;,blocked`
|
* (since API 31) `Landroid/net/wifi/SoftApInfo;->getApInstanceIdentifier()Ljava/lang/String;,blocked`
|
||||||
* (since API 31) `Landroid/net/wifi/WifiClient;->getApInstanceIdentifier()Ljava/lang/String;,blocked`
|
* (since API 31) `Landroid/net/wifi/WifiClient;->getApInstanceIdentifier()Ljava/lang/String;,blocked`
|
||||||
@@ -244,11 +245,14 @@ Greylisted/blacklisted APIs or internal constants: (some constants are hardcoded
|
|||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setAutoShutdownEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setAutoShutdownEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (on API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBand(I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (on API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBand(I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBlockedClientList(Ljava/util/List;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBlockedClientList(Ljava/util/List;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBridgedModeOpportunisticShutdownEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBssid(Landroid/net/MacAddress;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setBssid(Landroid/net/MacAddress;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (on API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setChannel(II)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (on API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setChannel(II)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setChannels(Landroid/util/SparseIntArray;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setChannels(Landroid/util/SparseIntArray;)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setClientControlByUserEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setClientControlByUserEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setHiddenSsid(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setHiddenSsid(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setIeee80211axEnabled(Z)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration$Builder;->setMacRandomizationSetting(I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setMaxNumberOfClients(I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setMaxNumberOfClients(I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setPassphrase(Ljava/lang/String;I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setPassphrase(Ljava/lang/String;I)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setShutdownTimeoutMillis(J)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration$Builder;->setShutdownTimeoutMillis(J)Landroid/net/wifi/SoftApConfiguration$Builder;,sdk,system-api,test-api`
|
||||||
@@ -259,15 +263,21 @@ Greylisted/blacklisted APIs or internal constants: (some constants are hardcoded
|
|||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->BAND_6GHZ:I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->BAND_6GHZ:I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->BAND_ANY:I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->BAND_ANY:I,sdk,system-api,test-api`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->BAND_*:I,sdk,system-api,test-api`
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->BAND_*:I,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->RANDOMIZATION_NONE:I,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->RANDOMIZATION_PERSISTENT:I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getAllowedClientList()Ljava/util/List;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getAllowedClientList()Ljava/util/List;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getBand()I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getBand()I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getBlockedClientList()Ljava/util/List;,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getBlockedClientList()Ljava/util/List;,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getChannel()I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getChannel()I,sdk,system-api,test-api`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->getChannels()Landroid/util/SparseIntArray;,sdk,system-api,test-api`
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->getChannels()Landroid/util/SparseIntArray;,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->getMacRandomizationSetting()I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getMaxNumberOfClients()I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getMaxNumberOfClients()I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getShutdownTimeoutMillis()J,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->getShutdownTimeoutMillis()J,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->isAutoShutdownEnabled()Z,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->isAutoShutdownEnabled()Z,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->isBridgedModeOpportunisticShutdownEnabled()Z,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->isClientControlByUserEnabled()Z,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApConfiguration;->isClientControlByUserEnabled()Z,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->isIeee80211axEnabled()Z,sdk,system-api,test-api`
|
||||||
|
* (since API 31) `Landroid/net/wifi/SoftApConfiguration;->isUserConfiguration()Z,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApInfo;->CHANNEL_WIDTH_*:I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApInfo;->CHANNEL_WIDTH_*:I,sdk,system-api,test-api`
|
||||||
* (since API 30) `Landroid/net/wifi/SoftApInfo;->CHANNEL_WIDTH_INVALID:I,sdk,system-api,test-api`
|
* (since API 30) `Landroid/net/wifi/SoftApInfo;->CHANNEL_WIDTH_INVALID:I,sdk,system-api,test-api`
|
||||||
* (since API 31) `Landroid/net/wifi/SoftApInfo;->getAutoShutdownTimeoutMillis()J,sdk,system-api,test-api`
|
* (since API 31) `Landroid/net/wifi/SoftApInfo;->getAutoShutdownTimeoutMillis()J,sdk,system-api,test-api`
|
||||||
|
|||||||
@@ -39,6 +39,14 @@ data class SoftApConfigurationCompat(
|
|||||||
var blockedClientList: List<MacAddress> = emptyList(),
|
var blockedClientList: List<MacAddress> = emptyList(),
|
||||||
@RequiresApi(30)
|
@RequiresApi(30)
|
||||||
var allowedClientList: List<MacAddress> = emptyList(),
|
var allowedClientList: List<MacAddress> = emptyList(),
|
||||||
|
@TargetApi(31)
|
||||||
|
var macRandomizationSetting: Int = RANDOMIZATION_PERSISTENT,
|
||||||
|
@TargetApi(31)
|
||||||
|
var isBridgedModeOpportunisticShutdownEnabled: Boolean = true,
|
||||||
|
@TargetApi(31)
|
||||||
|
var isIeee80211axEnabled: Boolean = true,
|
||||||
|
@TargetApi(31)
|
||||||
|
var isUserConfiguration: Boolean = true,
|
||||||
var underlying: Parcelable? = null) : Parcelable {
|
var underlying: Parcelable? = null) : Parcelable {
|
||||||
companion object {
|
companion object {
|
||||||
const val BAND_2GHZ = 1
|
const val BAND_2GHZ = 1
|
||||||
@@ -59,6 +67,11 @@ data class SoftApConfigurationCompat(
|
|||||||
}
|
}
|
||||||
val bandLookup = ConstantLookup<SoftApConfiguration>("BAND_", null, "2GHZ", "5GHZ")
|
val bandLookup = ConstantLookup<SoftApConfiguration>("BAND_", null, "2GHZ", "5GHZ")
|
||||||
|
|
||||||
|
@TargetApi(31)
|
||||||
|
const val RANDOMIZATION_NONE = 0
|
||||||
|
@TargetApi(31)
|
||||||
|
const val RANDOMIZATION_PERSISTENT = 1
|
||||||
|
|
||||||
fun isLegacyEitherBand(band: Int) = band and BAND_LEGACY == BAND_LEGACY
|
fun isLegacyEitherBand(band: Int) = band and BAND_LEGACY == BAND_LEGACY
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -151,6 +164,10 @@ data class SoftApConfigurationCompat(
|
|||||||
private val getChannels by lazy @TargetApi(31) {
|
private val getChannels by lazy @TargetApi(31) {
|
||||||
SoftApConfiguration::class.java.getDeclaredMethod("getChannels")
|
SoftApConfiguration::class.java.getDeclaredMethod("getChannels")
|
||||||
}
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val getMacRandomizationSetting by lazy @TargetApi(31) {
|
||||||
|
SoftApConfiguration::class.java.getDeclaredMethod("getMacRandomizationSetting")
|
||||||
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val getMaxNumberOfClients by lazy @TargetApi(30) {
|
private val getMaxNumberOfClients by lazy @TargetApi(30) {
|
||||||
SoftApConfiguration::class.java.getDeclaredMethod("getMaxNumberOfClients")
|
SoftApConfiguration::class.java.getDeclaredMethod("getMaxNumberOfClients")
|
||||||
@@ -163,10 +180,22 @@ data class SoftApConfigurationCompat(
|
|||||||
private val isAutoShutdownEnabled by lazy @TargetApi(30) {
|
private val isAutoShutdownEnabled by lazy @TargetApi(30) {
|
||||||
SoftApConfiguration::class.java.getDeclaredMethod("isAutoShutdownEnabled")
|
SoftApConfiguration::class.java.getDeclaredMethod("isAutoShutdownEnabled")
|
||||||
}
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val isBridgedModeOpportunisticShutdownEnabled by lazy @TargetApi(31) {
|
||||||
|
SoftApConfiguration::class.java.getDeclaredMethod("isBridgedModeOpportunisticShutdownEnabled")
|
||||||
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val isClientControlByUserEnabled by lazy @TargetApi(30) {
|
private val isClientControlByUserEnabled by lazy @TargetApi(30) {
|
||||||
SoftApConfiguration::class.java.getDeclaredMethod("isClientControlByUserEnabled")
|
SoftApConfiguration::class.java.getDeclaredMethod("isClientControlByUserEnabled")
|
||||||
}
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val isIeee80211axEnabled by lazy @TargetApi(31) {
|
||||||
|
SoftApConfiguration::class.java.getDeclaredMethod("isIeee80211axEnabled")
|
||||||
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val isUserConfiguration by lazy @TargetApi(31) {
|
||||||
|
SoftApConfiguration::class.java.getDeclaredMethod("isUserConfiguration")
|
||||||
|
}
|
||||||
|
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val classBuilder by lazy { Class.forName("android.net.wifi.SoftApConfiguration\$Builder") }
|
private val classBuilder by lazy { Class.forName("android.net.wifi.SoftApConfiguration\$Builder") }
|
||||||
@@ -188,6 +217,10 @@ data class SoftApConfigurationCompat(
|
|||||||
private val setBlockedClientList by lazy {
|
private val setBlockedClientList by lazy {
|
||||||
classBuilder.getDeclaredMethod("setBlockedClientList", java.util.List::class.java)
|
classBuilder.getDeclaredMethod("setBlockedClientList", java.util.List::class.java)
|
||||||
}
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val setBridgedModeOpportunisticShutdownEnabled by lazy {
|
||||||
|
classBuilder.getDeclaredMethod("setBridgedModeOpportunisticShutdownEnabled", Boolean::class.java)
|
||||||
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val setBssid by lazy @TargetApi(30) {
|
private val setBssid by lazy @TargetApi(30) {
|
||||||
classBuilder.getDeclaredMethod("setBssid", MacAddress::class.java)
|
classBuilder.getDeclaredMethod("setBssid", MacAddress::class.java)
|
||||||
@@ -206,6 +239,14 @@ data class SoftApConfigurationCompat(
|
|||||||
}
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val setHiddenSsid by lazy { classBuilder.getDeclaredMethod("setHiddenSsid", Boolean::class.java) }
|
private val setHiddenSsid by lazy { classBuilder.getDeclaredMethod("setHiddenSsid", Boolean::class.java) }
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val setIeee80211axEnabled by lazy {
|
||||||
|
classBuilder.getDeclaredMethod("setIeee80211axEnabled", Boolean::class.java)
|
||||||
|
}
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val setMacRandomizationSetting by lazy {
|
||||||
|
classBuilder.getDeclaredMethod("setMacRandomizationSetting", Int::class.java)
|
||||||
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val setMaxNumberOfClients by lazy {
|
private val setMaxNumberOfClients by lazy {
|
||||||
classBuilder.getDeclaredMethod("setMaxNumberOfClients", Int::class.java)
|
classBuilder.getDeclaredMethod("setMaxNumberOfClients", Int::class.java)
|
||||||
@@ -220,6 +261,8 @@ data class SoftApConfigurationCompat(
|
|||||||
}
|
}
|
||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
private val setSsid by lazy { classBuilder.getDeclaredMethod("setSsid", String::class.java) }
|
private val setSsid by lazy { classBuilder.getDeclaredMethod("setSsid", String::class.java) }
|
||||||
|
@get:RequiresApi(31)
|
||||||
|
private val setUserConfiguration by lazy @TargetApi(31) { UnblockCentral.setUserConfiguration(classBuilder) }
|
||||||
|
|
||||||
@Deprecated("Class deprecated in framework")
|
@Deprecated("Class deprecated in framework")
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@@ -277,6 +320,10 @@ data class SoftApConfigurationCompat(
|
|||||||
isClientControlByUserEnabled(this) as Boolean,
|
isClientControlByUserEnabled(this) as Boolean,
|
||||||
getBlockedClientList(this) as List<MacAddress>,
|
getBlockedClientList(this) as List<MacAddress>,
|
||||||
getAllowedClientList(this) as List<MacAddress>,
|
getAllowedClientList(this) as List<MacAddress>,
|
||||||
|
getMacRandomizationSetting(this) as Int,
|
||||||
|
isBridgedModeOpportunisticShutdownEnabled(this) as Boolean,
|
||||||
|
isIeee80211axEnabled(this) as Boolean,
|
||||||
|
isUserConfiguration(this) as Boolean,
|
||||||
this)
|
this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,6 +413,16 @@ data class SoftApConfigurationCompat(
|
|||||||
setHiddenSsid(builder, isHiddenSsid)
|
setHiddenSsid(builder, isHiddenSsid)
|
||||||
setAllowedClientList(builder, allowedClientList)
|
setAllowedClientList(builder, allowedClientList)
|
||||||
setBlockedClientList(builder, blockedClientList)
|
setBlockedClientList(builder, blockedClientList)
|
||||||
|
if (BuildCompat.isAtLeastS()) {
|
||||||
|
setMacRandomizationSetting(builder, macRandomizationSetting)
|
||||||
|
setBridgedModeOpportunisticShutdownEnabled(builder, isBridgedModeOpportunisticShutdownEnabled)
|
||||||
|
setIeee80211axEnabled(builder, isIeee80211axEnabled)
|
||||||
|
if (sac?.let { isUserConfiguration(it) as Boolean } != false != isUserConfiguration) try {
|
||||||
|
setUserConfiguration(builder, isUserConfiguration)
|
||||||
|
} catch (e: ReflectiveOperationException) {
|
||||||
|
Timber.w(e) // as far as we are concerned, this field is not used anywhere so ignore for now
|
||||||
|
}
|
||||||
|
}
|
||||||
return build(builder) as SoftApConfiguration
|
return build(builder) as SoftApConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,14 @@ object UnblockCentral {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(31)
|
||||||
|
fun setUserConfiguration(clazz: Class<*>) = init.let {
|
||||||
|
clazz.getDeclaredMethod("setUserConfiguration", Boolean::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
@get:RequiresApi(31)
|
@get:RequiresApi(31)
|
||||||
val SoftApConfiguration_BAND_TYPES get() = init.let {
|
val SoftApConfiguration_BAND_TYPES get() = init.let {
|
||||||
SoftApConfiguration::class.java.getField("BAND_TYPES").get(null) as IntArray
|
SoftApConfiguration::class.java.getDeclaredField("BAND_TYPES").get(null) as IntArray
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(31)
|
@RequiresApi(31)
|
||||||
|
|||||||
Reference in New Issue
Block a user