Guest User

Untitled

a guest
Dec 11th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. public static final String
  2. CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
  3. ...
  4. MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED);
  5.  
  6. adb shell settings put global captive_portal_detection_enabled 0
  7.  
  8. adb shell settings list global | grep "captive"
  9.  
  10. class ConnectWithoutInternetTest constructor(
  11. private val mContext: Context,
  12. private val connectivityManager: ConnectivityManager,
  13. private val wifiManager: WifiManager
  14. ) {
  15.  
  16. private val mWifiBroadcastReceiver = object : BroadcastReceiver() {
  17. override fun onReceive(context: Context, intent: Intent) {
  18. when (intent.action) {
  19. WifiManager.NETWORK_STATE_CHANGED_ACTION -> {
  20. val info = intent.getParcelableExtra<NetworkInfo>(WifiManager.EXTRA_NETWORK_INFO)
  21. val isConnected = info.isConnected
  22.  
  23. val ssid: String? = normalizeAndroidWifiSsid(wifiManager.connectionInfo?.ssid)
  24.  
  25. if (isConnected) {
  26. val builder = NetworkRequest.Builder()
  27. builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
  28. connectivityManager.registerNetworkCallback(
  29. builder.build(),
  30. object : ConnectivityManager.NetworkCallback() {
  31. override fun onAvailable(network: Network) {
  32. super.onAvailable(network)
  33. val networkInfo = connectivityManager.getNetworkInfo(network)
  34. val networkSsid = networkInfo.extraInfo
  35. if (networkSsid == ssid) {
  36. connectivityManager.unregisterNetworkCallback(this)
  37. }
  38. }
  39. })
  40. }
  41. }
  42. }
  43. }
  44. }
  45.  
  46. private fun init() {
  47. val intentFilter = IntentFilter()
  48. intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION)
  49. mContext.registerReceiver(mWifiBroadcastReceiver, intentFilter)
  50. }
  51.  
  52. private fun destroy() {
  53. mContext.unregisterReceiver(mWifiBroadcastReceiver)
  54. }
  55.  
  56. private fun normalizeAndroidWifiSsid(ssid: String?): String? {
  57. return ssid?.replace(""", "") ?: ssid
  58. }
  59.  
  60. fun connectToWifi(ssidParam: String, password: String?) {
  61. init()
  62. val ssid = ""$ssidParam""
  63. val config = wifiManager.configuredNetworks.find { it.SSID == ssid }
  64. val netId = if (config != null) {
  65. config.networkId
  66. } else {
  67. val wifiConfig = WifiConfiguration()
  68. wifiConfig.SSID = ssid
  69. password?.let { wifiConfig.preSharedKey = ""$password"" }
  70. wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
  71. wifiManager.addNetwork(wifiConfig)
  72. }
  73.  
  74. wifiManager.disconnect()
  75. val successful = wifiManager.enableNetwork(netId, true)
  76. }
Add Comment
Please, Sign In to add comment