wjc
2023-03-30 c5451371d006652b8c7a5da8c3ca7525d7b39fef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@file:Suppress("UNUSED_PARAMETER")
 
package ezviz.ezopensdkcommon.configwifi
 
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
import android.view.View
import com.ezviz.sdk.configwifi.WiFiUtils
import com.hikvision.wifi.configuration.BaseUtil
import ezviz.ezopensdkcommon.R
import ezviz.ezopensdkcommon.common.IntentConstants.*
import ezviz.ezopensdkcommon.common.RootActivity
import kotlinx.android.synthetic.main.activity_manual_connect_device_hotspot.*
 
class ManualConnectDeviceHotspotActivity : RootActivity() {
 
    private var mSSID: String? = null
    private var mPWD: String? = null
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_manual_connect_device_hotspot)
        initUi()
    }
 
    override fun initUi() {
        super.initUi()
        intent?.apply {
            val prefix = "EZVIZ_"
            mSSID = getStringExtra(DEVICE_HOTSPOT_SSID)
            if(TextUtils.isEmpty(mSSID)){
                mSSID = prefix + getStringExtra(DEVICE_SERIAL)
            }
            mPWD = getStringExtra(DEVICE_HOTSPOT_PWD)
            if(TextUtils.isEmpty(mPWD)){
                mPWD = prefix + getStringExtra(DEVICE_VERIFY_CODE)
            }
            tv_ssid.text = getString(R.string.device_hotspot_ssid) + mSSID
            tv_pwd.text = getString(R.string.device_hotspot_pwd) + mPWD
        }
    }
 
    override fun onResume() {
        super.onResume()
        checkWifiInfo()
    }
 
    private fun checkWifiInfo() { // 优先使用getCurrentWifiSsid方法获取wifi名
        var wifiName = WiFiUtils.getCurrentWifiSsid(this)
        // 如上述方式无效,则使用getWifiSSID方法进行获取
        if (!isValidWifiSSID(wifiName)) {
            wifiName = BaseUtil.getWifiSSID(this)
        }
        val isConnected = isValidWifiSSID(wifiName)
        showToast("Connected to device hotspot: $isConnected")
        if (isConnected) {
            intent?.apply {
                putExtra(USE_MANUAL_AP_CONFIG, true)
                ConfigWifiExecutingActivity.launch(mContext, this)
            }
        }
    }
 
    private fun isValidWifiSSID(wifiName: String): Boolean {
        return mSSID != null && mSSID.equals(wifiName)
    }
 
    fun onclickGoToWifiSetting(view: View) {
        val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
        startActivity(intent)
    }
 
    companion object {
        fun launch(context: Context, intent: Intent?) {
            val newIntent = Intent(context, ManualConnectDeviceHotspotActivity::class.java)
            newIntent.putExtras(intent!!)
            newIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
            context.startActivity(newIntent)
        }
    }
 
}