|
@@ -4,12 +4,9 @@ import android.Manifest
|
|
|
import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import android.content.IntentFilter
|
|
|
-import android.content.pm.PackageManager
|
|
|
import android.graphics.Color
|
|
|
import android.os.Bundle
|
|
|
import android.os.CountDownTimer
|
|
|
-import android.support.v4.app.ActivityCompat
|
|
|
-import android.support.v4.content.ContextCompat
|
|
|
import android.telephony.PhoneStateListener
|
|
|
import android.telephony.SignalStrength
|
|
|
import android.telephony.TelephonyManager
|
|
@@ -41,7 +38,6 @@ import com.wdkl.ncs.android.lib.utils.AppTool
|
|
|
import com.wdkl.ncs.android.lib.utils.joinManager
|
|
|
import com.wdkl.ncs.android.lib.utils.push
|
|
|
import com.wdkl.ncs.android.lib.utils.showMessage
|
|
|
-import com.wdkl.ncs.android.middleware.api.UrlManager
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
|
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
@@ -49,6 +45,7 @@ import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.ITcpCallBack
|
|
|
import com.wdkl.ncs.android.middleware.tcp.TcpClient
|
|
|
import com.wdkl.ncs.android.middleware.utils.MessageEvent
|
|
|
import com.wdkl.ncs.keepbackground.utils.SpManager
|
|
@@ -70,10 +67,13 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
|
|
|
lateinit var batteryBroadcastReceiver: BatteryBroadcastReceiver
|
|
|
lateinit var myMediaButtonReceiver: MyMediaButtonReceiver
|
|
|
- private var isRegister = true
|
|
|
+ private var isUnRegister = true
|
|
|
lateinit var loadingDialog: LoadingDialog
|
|
|
+ lateinit var netOffLoadingDialog: LoadingDialog
|
|
|
lateinit var countDownTimer: CountDownTimer
|
|
|
|
|
|
+ val iTcpCallBack:ITcpCallBack = TcpCallbackImpl()
|
|
|
+
|
|
|
private val WRITE_EXTERNAL_STORAGE_REQUEST_CODE = 127//这个值是自定义的一个int值,在申请多个权限时要
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
@@ -102,11 +102,10 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
//TTS初始化
|
|
|
SpeechUtil.getInstance().init(BaseApplication.appContext)
|
|
|
SpeechUtil.getInstance().startSpeechThread()
|
|
|
-
|
|
|
- //保活守护进程
|
|
|
- DaemonEnv.init(this);
|
|
|
+ DaemonEnv.initContext(this);
|
|
|
|
|
|
loadingDialog = CommonTool.createLoadingDialog(this, R.layout.custom_loading,R.id.loadding_image)
|
|
|
+ netOffLoadingDialog = CommonTool.createLoadingDialog(this, R.layout.netoff_loading,R.id.netoff_loading_image)
|
|
|
initCountDownTimer()
|
|
|
|
|
|
//网络强度监听
|
|
@@ -124,19 +123,23 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
if (teleManager != null) {
|
|
|
teleManager.listen(object : PhoneStateListener() {
|
|
|
override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
|
|
|
- val signalinfo = signalStrength.toString()
|
|
|
- val parts = signalinfo.split(" ".toRegex()).toTypedArray()
|
|
|
- val ltedbm = parts[9].toInt()
|
|
|
- if (ltedbm>=-79){
|
|
|
- tv_signal_strength.text = "网络极好"
|
|
|
- } else if (ltedbm>=-89 && ltedbm<=-80){
|
|
|
- tv_signal_strength.text = "网络好"
|
|
|
- } else if (ltedbm>=-99 && ltedbm<=-90){
|
|
|
- tv_signal_strength.text = "网络正常"
|
|
|
- } else if (ltedbm>=-109 && ltedbm<=-100){
|
|
|
- tv_signal_strength.text = "网络较差"
|
|
|
- } else if (ltedbm>=-120 && ltedbm<=-110){
|
|
|
- tv_signal_strength.text = "网络极差"
|
|
|
+ if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_NONE){
|
|
|
+ tv_signal_strength.text = "网络断开"
|
|
|
+ } else {
|
|
|
+ val signalinfo = signalStrength.toString()
|
|
|
+ val parts = signalinfo.split(" ".toRegex()).toTypedArray()
|
|
|
+ val ltedbm = parts[9].toInt()
|
|
|
+ if (ltedbm >= -79) {
|
|
|
+ tv_signal_strength.text = "网络极好"
|
|
|
+ } else if (ltedbm >= -89 && ltedbm <= -80) {
|
|
|
+ tv_signal_strength.text = "网络好"
|
|
|
+ } else if (ltedbm >= -99 && ltedbm <= -90) {
|
|
|
+ tv_signal_strength.text = "网络正常"
|
|
|
+ } else if (ltedbm >= -109 && ltedbm <= -100) {
|
|
|
+ tv_signal_strength.text = "网络较差"
|
|
|
+ } else if (ltedbm >= -120 && ltedbm <= -110) {
|
|
|
+ tv_signal_strength.text = "网络极差"
|
|
|
+ }
|
|
|
}
|
|
|
//Log.i(TAG, "网络:LTE 信号强度:$ltedbm======Detail:$signalinfo")
|
|
|
|
|
@@ -164,25 +167,18 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ DaemonEnv.sendStopWorkBroadcast(this)
|
|
|
+ SocketManager.getInstance().unConnect()
|
|
|
+
|
|
|
Constants.imei = Util.getIMEI(this)
|
|
|
Log.i(TAG, "IMEI " + Util.getIMEI(this))
|
|
|
|
|
|
Log.i(TAG, "mac " + Constants.mac)
|
|
|
tv_feedback_device_info.text = Constants.imei
|
|
|
|
|
|
- //获取TCP服务器IP和端口
|
|
|
- Thread(Runnable {
|
|
|
- while (isRegister) {
|
|
|
- Log.i(TAG, "获取TCP服务器IP和端口")
|
|
|
- runOnUiThread(Runnable {
|
|
|
- presenter.getTcpServerHost()
|
|
|
- })
|
|
|
- try {
|
|
|
- Thread.sleep(3000)
|
|
|
- } catch (e: Exception) {
|
|
|
- }
|
|
|
- }
|
|
|
- }).start()
|
|
|
+ if (NetHelper.getInstance().getNetworkState(this) != NetHelper.NETWORK_NONE){
|
|
|
+ initTcp()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -215,18 +211,13 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
* 返回的tcp信息
|
|
|
*/
|
|
|
override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
|
|
|
- isRegister = false
|
|
|
if(tcpSeverDTO.publicIp!= null && tcpSeverDTO.tcpPort != null && tcpSeverDTO.readerIdleTime != null){
|
|
|
Constants.tcpServer = tcpSeverDTO.publicIp
|
|
|
Constants.tcpPort = tcpSeverDTO.tcpPort
|
|
|
Constants.heartBeat = tcpSeverDTO.readerIdleTime
|
|
|
tv_server_ip.text = tcpSeverDTO.publicIp
|
|
|
|
|
|
- if (SpManager.getInstance().getBoolean(Constants.SYSTEM_REGISTERED)){
|
|
|
- presenter.getDeviceVO(Constants.imei)
|
|
|
- } else {
|
|
|
- tv_register_status.text = "本机未注册,请将识别码发给管理员。管理员注册本机后请点击注册完成进入"
|
|
|
- }
|
|
|
+ presenter.getDeviceVO(Constants.imei)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -273,6 +264,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
tv_register_status.text = "本机未注册,请将识别码发给管理员。管理员注册本机后请点击注册完成进入"
|
|
|
SpManager.getInstance().putBoolean(Constants.SYSTEM_REGISTERED,false)
|
|
|
tv_register_ok.visibility = View.VISIBLE
|
|
|
+ watch_activity_register_layout.visibility = View.VISIBLE
|
|
|
+ watch_activity_home_linyout.visibility = View.GONE
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -280,7 +273,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
Thread(Runnable {
|
|
|
//连接TCP
|
|
|
if (TcpClient.getInstance().channel==null || !TcpClient.getInstance().channel.isActive) {
|
|
|
- TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat)
|
|
|
+ TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat,iTcpCallBack)
|
|
|
}
|
|
|
while (!(TcpClient.getInstance().channel==null || !TcpClient.getInstance().channel.isActive)) {
|
|
|
presenter.getDeviceVO(Constants.imei)
|
|
@@ -293,7 +286,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
Thread(Runnable {
|
|
|
//连接TCP
|
|
|
if (TcpClient.getInstance().channel==null || !TcpClient.getInstance().channel.isActive) {
|
|
|
- TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat)
|
|
|
+ TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat,iTcpCallBack)
|
|
|
}
|
|
|
}).start()
|
|
|
}
|
|
@@ -307,6 +300,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
tv_register_status.setTextColor(Color.GREEN)
|
|
|
|
|
|
SpManager.getInstance().putBoolean(Constants.SYSTEM_REGISTERED,true)
|
|
|
+ isUnRegister = false
|
|
|
|
|
|
Log.i(TAG, "收到返回的设备信息 ")
|
|
|
Constants.partId = data.partId
|
|
@@ -321,6 +315,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
|
|
|
presenter.getAppVersion(Constants.partId, 7)
|
|
|
|
|
|
+ //保活守护进程
|
|
|
+ DaemonEnv.init(this);
|
|
|
DaemonEnv.startServiceSafelyWithData(this, WdKeepAliveService::class.java)
|
|
|
|
|
|
if (Constants.deviceId<=0 || TextUtils.isEmpty(Constants.sipId)) {
|
|
@@ -387,19 +383,28 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
|
|
|
override fun userLogin() {
|
|
|
Log.i(TAG, "wdkl rtc 登录成功")
|
|
|
+
|
|
|
runOnUiThread(Runnable {
|
|
|
+ tv_net_reconnect_text.visibility = View.GONE
|
|
|
+ tv_signal_strength.text = "网络正常"
|
|
|
+ netOffLoadingDialog.dismiss()
|
|
|
sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
})
|
|
|
}
|
|
|
|
|
|
override fun userLogout() {
|
|
|
Log.w(TAG, "wdkl rtc 用户登出")
|
|
|
+
|
|
|
runOnUiThread(Runnable {
|
|
|
+ tv_signal_strength.text = "网络断开"
|
|
|
+ tv_net_reconnect_text.visibility = View.VISIBLE
|
|
|
+ netOffLoadingDialog.show()
|
|
|
sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
|
|
|
+ SocketManager.getInstance().unConnect()
|
|
|
})
|
|
|
- if (SocketManager.getInstance().connectFlag) {
|
|
|
- reConnectRTC()
|
|
|
- }
|
|
|
+// if (SocketManager.getInstance().connectFlag) {
|
|
|
+// reConnectRTC()
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
fun reConnectRTC(){
|
|
@@ -420,19 +425,50 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
state_linlyout.setOnClickListener(this)
|
|
|
other_linyout.setOnClickListener(this)
|
|
|
tv_register_ok.setOnClickListener({
|
|
|
- loadingDialog.show()
|
|
|
- presenter.getDeviceVO(Constants.imei)
|
|
|
+ initTcp()
|
|
|
+
|
|
|
+ //presenter.getDeviceVO(Constants.imei)
|
|
|
countDownTimer.start()
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ fun initTcp(){
|
|
|
+ loadingDialog.show()
|
|
|
+
|
|
|
+ var count = 10
|
|
|
+ Thread(Runnable {
|
|
|
+ while (isUnRegister && count>0 && Strings.isNullOrEmpty(Constants.tcpServer)) {
|
|
|
+ SocketManager.getInstance().unConnect()
|
|
|
+ DaemonEnv.sendStopWorkBroadcast(this)
|
|
|
+ Log.i(TAG, "获取TCP服务器IP和端口")
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ presenter.getTcpServerHost()
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ Thread.sleep(3000)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ }
|
|
|
+ count--
|
|
|
+ }
|
|
|
+ loadingDialog.dismiss()
|
|
|
+
|
|
|
+ if (NetHelper.getInstance().getNetworkState(this) == NetHelper.NETWORK_NONE) {
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ showMessage("未能正确连接,请重试")
|
|
|
+ })
|
|
|
+ } else if (!Strings.isNullOrEmpty(Constants.tcpServer)){ //有网且得到了服务器IP
|
|
|
+ presenter.getTcpServerHost()
|
|
|
+ }
|
|
|
+ }).start()
|
|
|
+ }
|
|
|
+
|
|
|
fun initCountDownTimer() {
|
|
|
countDownTimer = object : CountDownTimer(1 * 1000L, 1000) {
|
|
|
override fun onTick(millisUntilFinished: Long) {
|
|
|
}
|
|
|
override fun onFinish() {
|
|
|
tv_register_ok.isEnabled = true
|
|
|
- loadingDialog.dismiss()
|
|
|
+ //loadingDialog.dismiss()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -535,6 +571,9 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
} else if (messageEvent.tag == Constants.EVENT_RTC_STATE){
|
|
|
runOnUiThread(Runnable {
|
|
|
sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
+ netOffLoadingDialog.dismiss()
|
|
|
+ //tv_signal_strength.text = "网络恢复"
|
|
|
+ tv_net_reconnect_text.visibility = View.GONE
|
|
|
})
|
|
|
}
|
|
|
}
|