Kaynağa Gözat

1.主屏幕恢复显示时检查当前是否有未处理事件,有则显示
2.红米Android 11版本手机使用耳机按键留言时先点亮屏幕,否则无法录音

weizhengliang 2 yıl önce
ebeveyn
işleme
4cd2b63a78

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -54,6 +54,8 @@
             android:value="240"/>
 
         <activity android:name="com.wdkl.ncs.android.component.home.activity.WatchHome2Activity"
+            android:showOnLockScreen="true"
+            android:showWhenLocked="true"
             android:launchMode="singleInstance"
             android:screenOrientation="portrait">
             <intent-filter>

+ 8 - 0
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt

@@ -747,6 +747,14 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         /*if (!Constants.showFloatWindow) {
             DeviceChannel.calling = false
         }*/
+
+        //检查当前是否还有未处理事件,有则显示
+        if (Constants.eventList.size > 0) {
+            val intent = Intent()
+            intent.setClass(this, NewEventListActivity::class.java)
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            startActivity(intent)
+        }
     }
 
     override fun onError(message: String, type: Int) {

+ 39 - 31
home/src/main/code/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt

@@ -482,43 +482,46 @@ class WdKeepAliveService : AbsWorkService() {
             }
 
             Constants.EVENT_DATA_REFRESH -> { //更新通讯录,更新通话白名单列表
-                Thread(Runnable {
-                    var jsonStr = ""
-                    val contactVos = ApiManager.API_WatchManageDevice.getWatchContactList(Constants.deviceId).map {
-                        jsonStr = it.getJsonString()
-                        val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-                        val contactList: List<WatchContactVO> = gson.fromJson(jsonStr, object : TypeToken<List<WatchContactVO>>() {}.type)
-                        return@map contactList
-                    }.blockingSingle()
-
-                    if (contactVos != null && contactVos.size > 0) {
-                        Log.e(TAG, "222 start update contacts...")
-                        /*for (contactVO in contactVos) {
-                            if (!Strings.isNullOrEmpty(contactVO.name) && !Strings.isNullOrEmpty(contactVO.phoneNumber)) {
-                                ContactHelper.setContact(BaseApplication.appContext, contactVO.name, contactVO.phoneNumber)
-                            }
-                        }*/
+                Thread{
+                    try {
+                        var jsonStr = ""
+                        val contactVos = ApiManager.API_WatchManageDevice.getWatchContactList(Constants.deviceId).map {
+                            jsonStr = it.getJsonString()
+                            val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                            val contactList: List<WatchContactVO> = gson.fromJson(jsonStr, object : TypeToken<List<WatchContactVO>>() {}.type)
+                            return@map contactList
+                        }.blockingSingle()
+
+                        if (contactVos != null && contactVos.size > 0) {
+                            Log.e(TAG, "222 start update contacts...")
+                            /*for (contactVO in contactVos) {
+                                if (!Strings.isNullOrEmpty(contactVO.name) && !Strings.isNullOrEmpty(contactVO.phoneNumber)) {
+                                    ContactHelper.setContact(BaseApplication.appContext, contactVO.name, contactVO.phoneNumber)
+                                }
+                            }*/
 
-                        ContactHelper.setContact2(BaseApplication.appContext, contactVos)
-                        Log.e(TAG, "222 update contacts end...")
-                    }
+                            ContactHelper.setContact2(BaseApplication.appContext, contactVos)
+                            Log.e(TAG, "222 update contacts end...")
+                        }
 
-                    //更新白名单列表
-                    val whiteList = ApiManager.API_WatchManageDevice.getPhoneWhiteList(Constants.deviceId).map {
-                        jsonStr = it.getJsonString()
-                        val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-                        val whiteList: List<String> = gson.fromJson(jsonStr, object : TypeToken<List<String>>() {}.type)
-                        return@map whiteList
-                    }.blockingSingle()
+                        //更新白名单列表
+                        val whiteList = ApiManager.API_WatchManageDevice.getPhoneWhiteList(Constants.deviceId).map {
+                            jsonStr = it.getJsonString()
+                            val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                            val whiteList: List<String> = gson.fromJson(jsonStr, object : TypeToken<List<String>>() {}.type)
+                            return@map whiteList
+                        }.blockingSingle()
 
 
-                    if (whiteList != null && whiteList.size > 0) {
-                        Constants.phoneWhiteList.clear()
-                        Constants.phoneWhiteList.addAll(whiteList)
+                        if (whiteList != null && whiteList.size > 0) {
+                            Constants.phoneWhiteList.clear()
+                            Constants.phoneWhiteList.addAll(whiteList)
+                        }
+                    } catch (ex: Exception) {
+                        ex.printStackTrace()
                     }
 
-                }).start()
-
+                }.start()
 
             }
 
@@ -958,6 +961,11 @@ class WdKeepAliveService : AbsWorkService() {
                                     }
                                     //通话中或者某些特定界面不响应耳机按键留言,未绑定用户时也不响应按键
                                     else if (!DeviceChannel.calling && Constants.allowVoiceMsg && !TextUtils.isEmpty(Constants.userName)) {
+                                        //小米Android 11手机需要亮屏后才能录音
+                                        if ("Redmi".equals(Build.BRAND)) {
+                                            Util.wakeUpAndUnlock()
+                                        }
+
                                         if (Constants.channelId == -1) {
                                             showMessage(R.string.str_im_no_channel)
                                         } else {

+ 4 - 3
home/src/main/code/com/wdkl/ncs/android/component/home/util/RecordHelper.java

@@ -107,8 +107,9 @@ public class RecordHelper {
                         mediaRecorder.prepare();
                         mediaRecorder.start();
                         recording = true;
-                    } catch (IOException e) {
-                        Log.e("error", "call startAmr(File mRecAudioFile) failed!" + e.getMessage());
+                    } catch (Exception e) {
+                        Log.e("error", "call startRecord failed!" + e.getMessage());
+                        e.printStackTrace();
                     }
                 }
             }
@@ -153,7 +154,7 @@ public class RecordHelper {
     public void execRecordVoiceMsg() {
         //连续点击2次开始留言
         long curTime = System.currentTimeMillis();
-        if (!recordRunning && curTime - clickTime > 200 && curTime - clickTime < 1500 && curTime - pressDownTime > 3500 && curTime - pressUpTime > 2500) {
+        if (!recordRunning && curTime - clickTime > 150 && curTime - clickTime < 1500 && curTime - pressDownTime > 3500 && curTime - pressUpTime > 2500) {
             showMessage(R.string.str_voice_msg_start);
             //先停止其他语音或铃声
             RingPlayHelper.stopRingTone();