diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e6d007..a966f73 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.br.operationsite"> + + @@ -22,6 +24,10 @@ + + - + + + @@ -22,6 +24,10 @@ + + - + + + @@ -22,6 +24,10 @@ + + - + + + @@ -22,6 +24,10 @@ + + - + + + @@ -22,6 +24,10 @@ + + - + () private var previewHandle = -1 private var selectChannel = -1 private var returnUserID = -1 @@ -32,6 +46,7 @@ private var dChannelNum = 0 private var startDChannel = 0 private var isPreviewSuccess = false + private var connectivityManager: ConnectivityManager? = null private lateinit var hostModel: DeviceConfigModel //手指是否已经从方向控制盘抬起 @@ -40,12 +55,25 @@ override fun initLayoutView(): Int = R.layout.activity_hikvision override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) + + titleView.text = "摄像头参数" } override fun initData() { hostModel = getDeviceConfigModels()[0] configSelectView.text = "${hostModel.host}:${hostModel.port}" + + //获取wifi列表 + wifiModels.clear() + wifiManager.scanResults.forEach { res -> + //只要YTJ-010002 + if (res.SSID == "YTJ-010002") { + wifiModels.add(res) + } + } } override fun observeRequestState() { @@ -59,6 +87,45 @@ } override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + netSelectView.setOnClickListener { + val items = ArrayList() + wifiModels.forEach { res -> + items.add(res.SSID) + } + + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(items) + .setItemTextColor(R.color.mainThemeColor.convertColor(this)) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + netSelectView.text = items[position] + val wifiModel = wifiModels[position] + + //连接wifi + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val specifier = WifiNetworkSpecifier.Builder() + .setSsid(wifiModel.SSID) + .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD) + .build() + + val request = NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .setNetworkSpecifier(specifier) + .build() + + connectivityManager = context.getSystemService( + Context.CONNECTIVITY_SERVICE + ) as ConnectivityManager + connectivityManager?.requestNetwork(request, networkCallback) + } + } + }).build().show() + } + configSelectView.setOnClickListener { val configModels = getDeviceConfigModels() val items = ArrayList() @@ -142,6 +209,17 @@ }) } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + connectivityManager?.bindProcessToNetwork(network) + } + + override fun onUnavailable() { + + } + } + private fun closeHikVisionCamera() { if (!SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_Stop_jni(previewHandle)) { return @@ -264,4 +342,10 @@ } } } + + override fun onDestroy() { + super.onDestroy() + connectivityManager?.bindProcessToNetwork(null) + connectivityManager?.unregisterNetworkCallback(networkCallback) + } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e6d007..a966f73 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.br.operationsite"> + + @@ -22,6 +24,10 @@ + + - + () private var previewHandle = -1 private var selectChannel = -1 private var returnUserID = -1 @@ -32,6 +46,7 @@ private var dChannelNum = 0 private var startDChannel = 0 private var isPreviewSuccess = false + private var connectivityManager: ConnectivityManager? = null private lateinit var hostModel: DeviceConfigModel //手指是否已经从方向控制盘抬起 @@ -40,12 +55,25 @@ override fun initLayoutView(): Int = R.layout.activity_hikvision override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) + + titleView.text = "摄像头参数" } override fun initData() { hostModel = getDeviceConfigModels()[0] configSelectView.text = "${hostModel.host}:${hostModel.port}" + + //获取wifi列表 + wifiModels.clear() + wifiManager.scanResults.forEach { res -> + //只要YTJ-010002 + if (res.SSID == "YTJ-010002") { + wifiModels.add(res) + } + } } override fun observeRequestState() { @@ -59,6 +87,45 @@ } override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + netSelectView.setOnClickListener { + val items = ArrayList() + wifiModels.forEach { res -> + items.add(res.SSID) + } + + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(items) + .setItemTextColor(R.color.mainThemeColor.convertColor(this)) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + netSelectView.text = items[position] + val wifiModel = wifiModels[position] + + //连接wifi + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val specifier = WifiNetworkSpecifier.Builder() + .setSsid(wifiModel.SSID) + .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD) + .build() + + val request = NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .setNetworkSpecifier(specifier) + .build() + + connectivityManager = context.getSystemService( + Context.CONNECTIVITY_SERVICE + ) as ConnectivityManager + connectivityManager?.requestNetwork(request, networkCallback) + } + } + }).build().show() + } + configSelectView.setOnClickListener { val configModels = getDeviceConfigModels() val items = ArrayList() @@ -142,6 +209,17 @@ }) } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + connectivityManager?.bindProcessToNetwork(network) + } + + override fun onUnavailable() { + + } + } + private fun closeHikVisionCamera() { if (!SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_Stop_jni(previewHandle)) { return @@ -264,4 +342,10 @@ } } } + + override fun onDestroy() { + super.onDestroy() + connectivityManager?.bindProcessToNetwork(null) + connectivityManager?.unregisterNetworkCallback(networkCallback) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt index 8807533..c8223fa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt @@ -1,5 +1,14 @@ package com.casic.br.operationsite.view +import android.content.Context +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.net.wifi.ScanResult +import android.net.wifi.WifiManager +import android.net.wifi.WifiNetworkSpecifier +import android.os.Build import android.view.View import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.createStartCommand @@ -18,15 +27,20 @@ import kotlinx.android.synthetic.main.activity_methane.* import kotlinx.android.synthetic.main.include_option_title.* + class MethaneActivity : KotlinBaseActivity() { companion object { lateinit var weakReferenceHandler: WeakReferenceHandler } + private val kTag = "MethaneActivity" + private val context = this@MethaneActivity + private val wifiManager by lazy { applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } + private val wifiModels = ArrayList() private lateinit var hostModel: DeviceConfigModel - private var isConnectSuccess = false + private var connectivityManager: ConnectivityManager? = null //点击中间开关次数 private var clickCount = 0 @@ -53,6 +67,15 @@ hostModel = getDeviceConfigModels()[0] configSelectView.text = "${hostModel.host}:${hostModel.port}" SocketManager.get.connectNetty(hostModel.host, hostModel.port) + + //获取wifi列表 + wifiModels.clear() + wifiManager.scanResults.forEach { res -> + //只要YTJ-010002 + if (res.SSID == "YTJ-010002") { + wifiModels.add(res) + } + } } private fun getDeviceConfigModels(): ArrayList { @@ -69,7 +92,40 @@ } netSelectView.setOnClickListener { + val items = ArrayList() + wifiModels.forEach { res -> + items.add(res.SSID) + } + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(items) + .setItemTextColor(R.color.mainThemeColor.convertColor(this)) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + netSelectView.text = items[position] + val wifiModel = wifiModels[position] + + //连接wifi + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val specifier = WifiNetworkSpecifier.Builder() + .setSsid(wifiModel.SSID) + .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD) + .build() + + val request = NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .setNetworkSpecifier(specifier) + .build() + + connectivityManager = context.getSystemService( + Context.CONNECTIVITY_SERVICE + ) as ConnectivityManager + connectivityManager?.requestNetwork(request, networkCallback) + } + } + }).build().show() } configSelectView.setOnClickListener { @@ -165,6 +221,19 @@ lightStateView.setBackgroundColor(R.color.green.convertColor(this)) } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + connectivityManager?.bindProcessToNetwork(network) + //连接成功后自动连接TCP + SocketManager.get.connectNetty(hostModel.host, hostModel.port) + } + + override fun onUnavailable() { + + } + } + override fun initLayoutView(): Int = R.layout.activity_methane override fun observeRequestState() { @@ -182,5 +251,7 @@ override fun onDestroy() { super.onDestroy() SocketManager.get.close() + connectivityManager?.bindProcessToNetwork(null) + connectivityManager?.unregisterNetworkCallback(networkCallback) } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e6d007..a966f73 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.br.operationsite"> + + @@ -22,6 +24,10 @@ + + - + () private var previewHandle = -1 private var selectChannel = -1 private var returnUserID = -1 @@ -32,6 +46,7 @@ private var dChannelNum = 0 private var startDChannel = 0 private var isPreviewSuccess = false + private var connectivityManager: ConnectivityManager? = null private lateinit var hostModel: DeviceConfigModel //手指是否已经从方向控制盘抬起 @@ -40,12 +55,25 @@ override fun initLayoutView(): Int = R.layout.activity_hikvision override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) + + titleView.text = "摄像头参数" } override fun initData() { hostModel = getDeviceConfigModels()[0] configSelectView.text = "${hostModel.host}:${hostModel.port}" + + //获取wifi列表 + wifiModels.clear() + wifiManager.scanResults.forEach { res -> + //只要YTJ-010002 + if (res.SSID == "YTJ-010002") { + wifiModels.add(res) + } + } } override fun observeRequestState() { @@ -59,6 +87,45 @@ } override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + netSelectView.setOnClickListener { + val items = ArrayList() + wifiModels.forEach { res -> + items.add(res.SSID) + } + + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(items) + .setItemTextColor(R.color.mainThemeColor.convertColor(this)) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + netSelectView.text = items[position] + val wifiModel = wifiModels[position] + + //连接wifi + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val specifier = WifiNetworkSpecifier.Builder() + .setSsid(wifiModel.SSID) + .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD) + .build() + + val request = NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .setNetworkSpecifier(specifier) + .build() + + connectivityManager = context.getSystemService( + Context.CONNECTIVITY_SERVICE + ) as ConnectivityManager + connectivityManager?.requestNetwork(request, networkCallback) + } + } + }).build().show() + } + configSelectView.setOnClickListener { val configModels = getDeviceConfigModels() val items = ArrayList() @@ -142,6 +209,17 @@ }) } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + connectivityManager?.bindProcessToNetwork(network) + } + + override fun onUnavailable() { + + } + } + private fun closeHikVisionCamera() { if (!SDKGuider.g_sdkGuider.m_comPreviewGuider.RealPlay_Stop_jni(previewHandle)) { return @@ -264,4 +342,10 @@ } } } + + override fun onDestroy() { + super.onDestroy() + connectivityManager?.bindProcessToNetwork(null) + connectivityManager?.unregisterNetworkCallback(networkCallback) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt index 8807533..c8223fa 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MethaneActivity.kt @@ -1,5 +1,14 @@ package com.casic.br.operationsite.view +import android.content.Context +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.net.wifi.ScanResult +import android.net.wifi.WifiManager +import android.net.wifi.WifiNetworkSpecifier +import android.os.Build import android.view.View import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.createStartCommand @@ -18,15 +27,20 @@ import kotlinx.android.synthetic.main.activity_methane.* import kotlinx.android.synthetic.main.include_option_title.* + class MethaneActivity : KotlinBaseActivity() { companion object { lateinit var weakReferenceHandler: WeakReferenceHandler } + private val kTag = "MethaneActivity" + private val context = this@MethaneActivity + private val wifiManager by lazy { applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager } + private val wifiModels = ArrayList() private lateinit var hostModel: DeviceConfigModel - private var isConnectSuccess = false + private var connectivityManager: ConnectivityManager? = null //点击中间开关次数 private var clickCount = 0 @@ -53,6 +67,15 @@ hostModel = getDeviceConfigModels()[0] configSelectView.text = "${hostModel.host}:${hostModel.port}" SocketManager.get.connectNetty(hostModel.host, hostModel.port) + + //获取wifi列表 + wifiModels.clear() + wifiManager.scanResults.forEach { res -> + //只要YTJ-010002 + if (res.SSID == "YTJ-010002") { + wifiModels.add(res) + } + } } private fun getDeviceConfigModels(): ArrayList { @@ -69,7 +92,40 @@ } netSelectView.setOnClickListener { + val items = ArrayList() + wifiModels.forEach { res -> + items.add(res.SSID) + } + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(items) + .setItemTextColor(R.color.mainThemeColor.convertColor(this)) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + netSelectView.text = items[position] + val wifiModel = wifiModels[position] + + //连接wifi + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val specifier = WifiNetworkSpecifier.Builder() + .setSsid(wifiModel.SSID) + .setWpa2Passphrase(LocaleConstant.WIFI_PASSWORD) + .build() + + val request = NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .setNetworkSpecifier(specifier) + .build() + + connectivityManager = context.getSystemService( + Context.CONNECTIVITY_SERVICE + ) as ConnectivityManager + connectivityManager?.requestNetwork(request, networkCallback) + } + } + }).build().show() } configSelectView.setOnClickListener { @@ -165,6 +221,19 @@ lightStateView.setBackgroundColor(R.color.green.convertColor(this)) } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + connectivityManager?.bindProcessToNetwork(network) + //连接成功后自动连接TCP + SocketManager.get.connectNetty(hostModel.host, hostModel.port) + } + + override fun onUnavailable() { + + } + } + override fun initLayoutView(): Int = R.layout.activity_methane override fun observeRequestState() { @@ -182,5 +251,7 @@ override fun onDestroy() { super.onDestroy() SocketManager.get.close() + connectivityManager?.bindProcessToNetwork(null) + connectivityManager?.unregisterNetworkCallback(networkCallback) } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_hikvision.xml b/app/src/main/res/layout/activity_hikvision.xml index e217f58..752d62c 100644 --- a/app/src/main/res/layout/activity_hikvision.xml +++ b/app/src/main/res/layout/activity_hikvision.xml @@ -1,28 +1,50 @@ + android:orientation="vertical"> - + + + + + + + + @@ -47,10 +69,16 @@ android:textSize="@dimen/sp_16" /> + + @@ -71,7 +99,8 @@ android:layout_margin="@dimen/dp_7" app:controller_borderColor="@color/mainThemeColor" app:controller_borderStroke="7" - app:controller_outerCircleDiameter="175" /> + app:controller_outerCircleDiameter="150" /> - \ No newline at end of file + +