|
@@ -7,7 +7,6 @@ import android.content.Intent
|
|
|
import android.content.IntentFilter
|
|
|
import android.content.pm.PackageManager
|
|
|
import android.graphics.Color
|
|
|
-import android.net.ConnectivityManager
|
|
|
import android.net.wifi.WifiManager
|
|
|
import android.provider.Settings
|
|
|
import android.support.v4.app.ActivityCompat
|
|
@@ -26,9 +25,8 @@ import com.wdkl.core.socket.IUserState
|
|
|
import com.wdkl.core.socket.SocketManager
|
|
|
import com.wdkl.ncs.android.component.home.R
|
|
|
import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
|
|
|
-import com.wdkl.ncs.android.component.home.broadcast.NetworkBroadcastReceiver
|
|
|
+import com.wdkl.ncs.android.component.home.broadcast.MyMediaButtonReceiver
|
|
|
import com.wdkl.ncs.android.component.home.databinding.WatchActivityHome2Binding
|
|
|
-import com.wdkl.ncs.android.component.home.keepalive.KeepManager
|
|
|
import com.wdkl.ncs.android.component.home.launch.HomeLaunch
|
|
|
import com.wdkl.ncs.android.component.home.service.TcpHandleService
|
|
|
import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
|
|
@@ -81,13 +79,13 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
private var netType: Int = -1
|
|
|
|
|
|
lateinit var batteryBroadcastReceiver: BatteryBroadcastReceiver
|
|
|
+ lateinit var myMediaButtonReceiver: MyMediaButtonReceiver
|
|
|
private var isRegister = true
|
|
|
|
|
|
private val WRITE_EXTERNAL_STORAGE_REQUEST_CODE = 127//这个值是自定义的一个int值,在申请多个权限时要
|
|
|
|
|
|
private var time = 0L
|
|
|
|
|
|
-
|
|
|
override fun getLayId(): Int {
|
|
|
return R.layout.watch_activity_home2
|
|
|
}
|
|
@@ -96,13 +94,13 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
HomeLaunch.component.inject(this)
|
|
|
}
|
|
|
|
|
|
+ //初始化
|
|
|
override fun init() {
|
|
|
val permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
|
|
|
|
|
|
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
|
|
|
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), WRITE_EXTERNAL_STORAGE_REQUEST_CODE)
|
|
|
} else {
|
|
|
-
|
|
|
}
|
|
|
|
|
|
Constants.imei = Util.getIMEI(this)
|
|
@@ -111,11 +109,12 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
Log.i(TAG, "mac " + Constants.mac)
|
|
|
tv_mac_addr.text = "MAC地址: " + Constants.mac + "\n" + "IMEI:" + Constants.imei
|
|
|
|
|
|
+ //获取TCP服务器IP和端口
|
|
|
Thread(Runnable {
|
|
|
while (isRegister) {
|
|
|
- Log.i(TAG,"注册心跳")
|
|
|
+ Log.i(TAG,"获取TCP服务器IP和端口")
|
|
|
runOnUiThread(Runnable {
|
|
|
- presenter.loadTcpServerHost()
|
|
|
+ presenter.getTcpServerHost()
|
|
|
})
|
|
|
try {
|
|
|
Thread.sleep(3000)
|
|
@@ -123,23 +122,34 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
}
|
|
|
}
|
|
|
}).start()
|
|
|
- }
|
|
|
|
|
|
- private fun requestPermissions() {
|
|
|
- Observable.just("").compose(RxPermissions(this).ensure(Manifest.permission.CAMERA,
|
|
|
- Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
- Manifest.permission.ACCESS_WIFI_STATE,
|
|
|
- Manifest.permission.BLUETOOTH,
|
|
|
- Manifest.permission.RECORD_AUDIO,
|
|
|
- Manifest.permission.READ_PHONE_STATE)).subscribe {
|
|
|
- if (it) {
|
|
|
- presenter.loadData(Constants.imei)// 传imei
|
|
|
- } else {
|
|
|
- showMessage("请重新授权,进入App")
|
|
|
- requestPermissions()
|
|
|
+ wifiManager = (applicationContext.getSystemService(Context.WIFI_SERVICE)) as WifiManager
|
|
|
+
|
|
|
+ //网络强度监听
|
|
|
+ teleManager = (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
|
|
|
+ netType = NetHelper.getInstance().getNetworkState(applicationContext)
|
|
|
+ Log.i(TAG, "网络类型:" + netType)
|
|
|
+ if (netType == NetHelper.NETWORK_2G || netType == NetHelper.NETWORK_3G || netType == NetHelper.NETWORK_4G) {
|
|
|
+ if (teleManager != null) {
|
|
|
+ teleManager.listen(object : PhoneStateListener() {
|
|
|
+ override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
|
|
|
+ super.onSignalStrengthsChanged(signalStrength)
|
|
|
+ val asu = signalStrength.gsmSignalStrength
|
|
|
+ val lastSignal = -113 + 2 * asu;
|
|
|
+ if (lastSignal > 0) {
|
|
|
+ var mobileNetworkSignal = lastSignal
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
|
|
|
}
|
|
|
- }.joinManager(disposableManager)
|
|
|
+ }
|
|
|
+
|
|
|
+ //注册广播
|
|
|
+ regReceiver()
|
|
|
+
|
|
|
+ //TTS初始化
|
|
|
+ SpeechUtil.getInstance().init(BaseApplication.appContext)
|
|
|
+ SpeechUtil.getInstance().startSpeechThread()
|
|
|
}
|
|
|
|
|
|
private fun regReceiver() {
|
|
@@ -147,70 +157,63 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
val intentFilter = IntentFilter()
|
|
|
intentFilter.addAction(WifiManager.RSSI_CHANGED_ACTION)
|
|
|
registerReceiver(wifiReceiver, intentFilter)
|
|
|
- }
|
|
|
|
|
|
- override fun userLogin() {
|
|
|
- Log.i(TAG, "wdkl rtc 登录成功")
|
|
|
- runOnUiThread(Runnable {
|
|
|
- sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
- })
|
|
|
- }
|
|
|
+ myMediaButtonReceiver = MyMediaButtonReceiver()
|
|
|
+ val ittFilterButton = IntentFilter(Intent.ACTION_MEDIA_BUTTON) //控制键
|
|
|
+ registerReceiver(myMediaButtonReceiver, ittFilterButton);
|
|
|
|
|
|
- override fun userLogout() {
|
|
|
- Log.w(TAG, "wdkl rtc 用户登出")
|
|
|
- runOnUiThread(Runnable {
|
|
|
- sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
|
|
|
- })
|
|
|
- if (SocketManager.getInstance().connectFlag) {
|
|
|
- reConnectRTC()
|
|
|
- }
|
|
|
- }
|
|
|
+// val ittFilterBluetooth = IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED) //蓝牙断开
|
|
|
+// registerReceiver(myMediaButtonReceiver, ittFilterBluetooth);
|
|
|
|
|
|
- fun reConnectRTC(){
|
|
|
- if (SocketManager.getInstance().userState==0){
|
|
|
- AppTool.Time.delay(5000){
|
|
|
- SocketManager.getInstance().reConnect()
|
|
|
- reConnectRTC()
|
|
|
- }
|
|
|
- } else {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private fun unRegReceiver() {
|
|
|
- unregisterReceiver(wifiReceiver)
|
|
|
- }
|
|
|
-
|
|
|
- override fun bindEvent() {
|
|
|
- customer_list_linlyout.setOnClickListener(this)
|
|
|
- call_records_linlyout.setOnClickListener(this)
|
|
|
- user_name_linlyout.setOnClickListener(this)
|
|
|
- state_linlyout.setOnClickListener(this)
|
|
|
- user_name_linlyout.setOnLongClickListener(this)
|
|
|
- other_linyout.setOnClickListener(this)
|
|
|
- setting_tv.setOnClickListener({
|
|
|
- val intent = Intent(Settings.ACTION_SETTINGS)
|
|
|
- startActivity(intent)
|
|
|
- })
|
|
|
+ //电池
|
|
|
+ batteryBroadcastReceiver = BatteryBroadcastReceiver(electric_quantity_tv)
|
|
|
+ val intentFilter2 = IntentFilter()
|
|
|
+ intentFilter2.addAction(Intent.ACTION_BATTERY_CHANGED)
|
|
|
+ registerReceiver(batteryBroadcastReceiver, intentFilter2)
|
|
|
}
|
|
|
|
|
|
- override fun destory() {
|
|
|
- unRegReceiver()
|
|
|
- SpeechUtil.getInstance().release()
|
|
|
- //注销webRTC
|
|
|
- SocketManager.getInstance().unConnect()
|
|
|
+ /**
|
|
|
+ * 返回的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
|
|
|
|
|
|
- KeepManager.getInstance().unRegisterKeepReceiver(this)
|
|
|
+ Thread(Runnable {
|
|
|
+ run {
|
|
|
+ TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat)
|
|
|
+ }
|
|
|
+ }).start()
|
|
|
|
|
|
- if (batteryBroadcastReceiver != null) {
|
|
|
- unregisterReceiver(batteryBroadcastReceiver)
|
|
|
+ requestPermissions()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private fun requestPermissions() {
|
|
|
+ Observable.just("").compose(RxPermissions(this).ensure(Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.ACCESS_WIFI_STATE,
|
|
|
+ Manifest.permission.BLUETOOTH,
|
|
|
+ Manifest.permission.RECORD_AUDIO,
|
|
|
+ Manifest.permission.READ_PHONE_STATE)).subscribe {
|
|
|
+ if (it) {
|
|
|
+ presenter.getDeviceVO(Constants.imei)// 传imei
|
|
|
+ } else {
|
|
|
+ showMessage("请重新授权,进入App")
|
|
|
+ requestPermissions()
|
|
|
+ }
|
|
|
+ }.joinManager(disposableManager)
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 返回的设备信息
|
|
|
*/
|
|
|
- override fun showData(data: DeviceVO) {
|
|
|
+ override fun setDeviceDo(data: DeviceVO) {
|
|
|
watch_activity_register_layout.visibility = View.GONE
|
|
|
watch_activity_home_linyout.visibility = View.VISIBLE
|
|
|
|
|
@@ -236,46 +239,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
}
|
|
|
initSDK(data.sipId)
|
|
|
presenter.getDeviceSettingData(""+Constants.partId)
|
|
|
- initInterfaceData()
|
|
|
- showMessage("初始化完成")
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回的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
|
|
|
-
|
|
|
- startConnectTcpServer()
|
|
|
-// showMessage("开始连接TCP服务器...")
|
|
|
- requestPermissions()
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private fun startConnectTcpServer() {
|
|
|
- Thread(Runnable {
|
|
|
- run {
|
|
|
- TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat)
|
|
|
- }
|
|
|
- }).start()
|
|
|
- }
|
|
|
|
|
|
- private fun initSDK(DeviceSipId: String) {
|
|
|
- val intent = Intent(this, TcpHandleService::class.java)
|
|
|
- startService(intent)
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化界面数据
|
|
|
- */
|
|
|
- fun initInterfaceData() {
|
|
|
watch_name_tv.text = Constants.userName
|
|
|
-
|
|
|
if (Constants.userName!=null){
|
|
|
if (Constants.userRoleName!!.contains("腕表")) {
|
|
|
watch_role_name_tv.text = Constants.userRoleName!!.substring(0, (Constants.userRoleName)!!.indexOf("腕表"))
|
|
@@ -283,6 +248,12 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
watch_role_name_tv.text = Constants.userRoleName
|
|
|
}
|
|
|
}
|
|
|
+ showMessage("初始化完成")
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun initSDK(DeviceSipId: String) {
|
|
|
+ val intent = Intent(this, TcpHandleService::class.java)
|
|
|
+ startService(intent)
|
|
|
|
|
|
//WEBRTC 语音初始化
|
|
|
// 添加登录回调
|
|
@@ -291,40 +262,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
SocketManager.getInstance().connect(Urls.WS, Constants.sipId, 0)
|
|
|
|
|
|
Log.i(TAG, "Urls.WS " + Urls.WS + " sip_id " + Constants.sipId)
|
|
|
-
|
|
|
- wifiManager = (applicationContext.getSystemService(Context.WIFI_SERVICE)) as WifiManager
|
|
|
- teleManager = (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
|
|
|
-
|
|
|
- netType = NetHelper.getInstance().getNetworkState(applicationContext)
|
|
|
- Log.i(TAG, "网络类型:" + netType)
|
|
|
- if (netType == NetHelper.NETWORK_2G || netType == NetHelper.NETWORK_3G || netType == NetHelper.NETWORK_4G) {
|
|
|
- if (teleManager != null) {
|
|
|
- teleManager.listen(object : PhoneStateListener() {
|
|
|
- override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
|
|
|
- super.onSignalStrengthsChanged(signalStrength)
|
|
|
- val asu = signalStrength.gsmSignalStrength
|
|
|
- val lastSignal = -113 + 2 * asu;
|
|
|
- if (lastSignal > 0) {
|
|
|
- var mobileNetworkSignal = lastSignal
|
|
|
- }
|
|
|
- }
|
|
|
- }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
|
|
|
- }
|
|
|
- }
|
|
|
- regReceiver()
|
|
|
-
|
|
|
- //屏幕监听
|
|
|
- KeepManager.getInstance().registerKeepReceiver(this)
|
|
|
-
|
|
|
- //电池
|
|
|
- batteryBroadcastReceiver = BatteryBroadcastReceiver(electric_quantity_tv)
|
|
|
- val intentFilter = IntentFilter()
|
|
|
- intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED)
|
|
|
- registerReceiver(batteryBroadcastReceiver, intentFilter)
|
|
|
-
|
|
|
- //TTS初始化
|
|
|
- SpeechUtil.getInstance().init(BaseApplication.appContext)
|
|
|
- SpeechUtil.getInstance().startSpeechThread()
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -344,6 +281,47 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ override fun userLogin() {
|
|
|
+ Log.i(TAG, "wdkl rtc 登录成功")
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun userLogout() {
|
|
|
+ Log.w(TAG, "wdkl rtc 用户登出")
|
|
|
+ runOnUiThread(Runnable {
|
|
|
+ sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
|
|
|
+ })
|
|
|
+ if (SocketManager.getInstance().connectFlag) {
|
|
|
+ reConnectRTC()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fun reConnectRTC(){
|
|
|
+ if (SocketManager.getInstance().userState==0){
|
|
|
+ AppTool.Time.delay(5000){
|
|
|
+ SocketManager.getInstance().reConnect()
|
|
|
+ reConnectRTC()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun bindEvent() {
|
|
|
+ customer_list_linlyout.setOnClickListener(this)
|
|
|
+ call_records_linlyout.setOnClickListener(this)
|
|
|
+ user_name_linlyout.setOnClickListener(this)
|
|
|
+ state_linlyout.setOnClickListener(this)
|
|
|
+ user_name_linlyout.setOnLongClickListener(this)
|
|
|
+ other_linyout.setOnClickListener(this)
|
|
|
+ setting_tv.setOnClickListener({
|
|
|
+ val intent = Intent(Settings.ACTION_SETTINGS)
|
|
|
+ startActivity(intent)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
override fun onError(message: String, type: Int) {
|
|
|
}
|
|
|
|
|
@@ -356,6 +334,22 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
override fun networkMonitor(state: NetState) {
|
|
|
}
|
|
|
|
|
|
+ override fun destory() {
|
|
|
+ SpeechUtil.getInstance().release()
|
|
|
+ //注销webRTC
|
|
|
+ SocketManager.getInstance().unConnect()
|
|
|
+
|
|
|
+ if (wifiReceiver != null){
|
|
|
+ unregisterReceiver(wifiReceiver)
|
|
|
+ }
|
|
|
+ if (batteryBroadcastReceiver != null) {
|
|
|
+ unregisterReceiver(batteryBroadcastReceiver)
|
|
|
+ }
|
|
|
+ if (myMediaButtonReceiver != null ){
|
|
|
+ unregisterReceiver(myMediaButtonReceiver)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 监听
|
|
|
*/
|
|
@@ -403,6 +397,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
return true
|
|
|
}
|
|
|
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
|
|
|
+ Log.i(TAG, "keyup keyCode " + keyCode)
|
|
|
return if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
|
|
|
//不执行父类点击事件
|
|
|
true
|
|
@@ -410,6 +405,12 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
|
|
|
//继续执行父类其他点击事件
|
|
|
}
|
|
|
|
|
|
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
|
|
+ Log.i(TAG, "keydown keyCode " + keyCode)
|
|
|
+
|
|
|
+ return super.onKeyDown(keyCode, event)
|
|
|
+ }
|
|
|
+
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun onMoonEvent(messageEvent: MessageEvent) {
|
|
|
if (messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY) { //电量显示,由广播获取
|