全网查询,查询结果保存到csv中

This commit is contained in:
manchuwork
2025-10-26 23:40:32 +08:00
parent 08adafd2b6
commit 4646d14f5a
18 changed files with 1779 additions and 442 deletions

616
app/demo/search.txt Normal file
View File

@@ -0,0 +1,616 @@
--------- beginning of crash
2025-10-24 13:23:03.594 28066-28066 AndroidRuntime pid-28066 E FATAL EXCEPTION: main
Process: com.loveerror.bested, PID: 28066
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172)
at android.app.Dialog.show(Dialog.java:979)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1147)
at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202)
at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135)
at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0)
at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937)
at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1441)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527)
at android.widget.AbsListView$5.run(AbsListView.java:4672)
at android.os.Handler.handleCallback(Handler.java:966)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:293)
at android.app.ActivityThread.loopProcess(ActivityThread.java:9986)
at android.app.ActivityThread.main(ActivityThread.java:9975)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
2025-10-24 13:23:11.450 28197-28197 AndroidRuntime pid-28197 E FATAL EXCEPTION: main
Process: com.loveerror.bested, PID: 28197
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172)
at android.app.Dialog.show(Dialog.java:979)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1147)
at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202)
at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135)
at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0)
at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937)
at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1441)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527)
at android.widget.AbsListView$5.run(AbsListView.java:4672)
at android.os.Handler.handleCallback(Handler.java:966)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:293)
at android.app.ActivityThread.loopProcess(ActivityThread.java:9986)
at android.app.ActivityThread.main(ActivityThread.java:9975)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
2025-10-24 13:23:19.362 28298-28298 AndroidRuntime pid-28298 E FATAL EXCEPTION: main
Process: com.loveerror.bested, PID: 28298
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172)
at android.app.Dialog.show(Dialog.java:979)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1147)
at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202)
at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135)
at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0)
at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937)
at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1441)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527)
at android.widget.AbsListView$5.run(AbsListView.java:4672)
at android.os.Handler.handleCallback(Handler.java:966)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:293)
at android.app.ActivityThread.loopProcess(ActivityThread.java:9986)
at android.app.ActivityThread.main(ActivityThread.java:9975)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
--------- beginning of system
2025-10-26 16:35:04.301 7627-7627 ActivityThread com.loveerror.bested I Remove activity client record, r= ActivityRecord{f460998 token=android.os.BinderProxy@736f2d2 {com.loveerror.bested/com.loveerror.bested.MainActivity}} token= android.os.BinderProxy@736f2d2
--------- beginning of main
2025-10-26 16:35:23.791 7627-7627 HwPartPowe...iceFactory com.loveerror.bested I add HwPartPowerOfficeFactoryImpl to memory.
2025-10-26 16:35:23.799 7627-7627 HwEditorHelperImpl com.loveerror.bested D isTouchPositionInHightlight.
2025-10-26 16:35:23.805 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:23.809 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.041914 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:23.812 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:23.817 7627-7627 Choreographer com.loveerror.bested W Frame time is 32.391506 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:23.825 7627-7627 Choreographer com.loveerror.bested W Frame time is 40.62964 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:23.834 7627-7627 Choreographer com.loveerror.bested W Frame time is 48.897984 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested D stopLongPressingPreviewAnimation.
2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested D removeDrawableView.
2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested E removeDrawableView decorview is null.
2025-10-26 16:35:23.856 7627-7627 InputMethodManager com.loveerror.bested I getNextServedViewLocked mCurRootView is android.view.ViewRootImpl@74296fa
2025-10-26 16:35:23.856 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=CHECK_FOCUS
2025-10-26 16:35:23.865 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION
2025-10-26 16:35:23.866 7627-7627 Compatibil...geReporter com.loveerror.bested D Compat change id reported: 163400105; UID 10407; state: ENABLED
2025-10-26 16:35:23.867 7627-7627 InputMethodManager com.loveerror.bested I showSoftInput, displayId=-1,callers=android.view.inputmethod.InputMethodManager.showSoftInput:1785 android.view.inputmethod.InputMethodManager.showSoftInput:1723 android.widget.TextView.onTouchEvent:11527 android.view.View.dispatchTouchEvent:14955
2025-10-26 16:35:23.868 7627-7627 InputMethodManager com.loveerror.bested D showSoftInput() view=android.widget.EditText{cade397 VFED..CL. .F.P..ID 0,0-420,388 aid=1} flags=0 reason=SHOW_SOFT_INPUT
2025-10-26 16:35:23.879 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:23.879 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:23.928 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:23.928 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:23.930 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:23.930 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:23.936 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on
2025-10-26 16:35:23.938 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets show(ime(), fromIme=true)
2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets applyAnimation types:8,show:true, this:android.view.InsetsController@cbad74e
2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets controlAnimation types: 8
2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets controlAnimation after canel existing types: 8
2025-10-26 16:35:23.948 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3009 scene=IME
2025-10-26 16:35:23.948 7627-8056 HwViewRootImpl com.loveerror.bested I Add sceneId 96 topId: 0
2025-10-26 16:35:23.963 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:23.964 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:23.966 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:23.967 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:24.015 7627-7635 oveerror.beste com.loveerror.bested I Compiler allocated 5042KB to compile void android.view.ViewRootImpl.performTraversals()
2025-10-26 16:35:24.338 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3010 scene=IME
2025-10-26 16:35:24.338 7627-8056 HwViewRootImpl com.loveerror.bested I remove sceneId 96 topId: 0
2025-10-26 16:35:26.013 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:26.026 7627-7627 Choreographer com.loveerror.bested W Frame time is 15.51419 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:26.033 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:26.051 7627-7627 Choreographer com.loveerror.bested W Frame time is 6.726208 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:26.067 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.138264 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:26.098 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:26.098 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:26.122 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled...
2025-10-26 16:35:26.122 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0
2025-10-26 16:35:26.127 7627-7627 InputMethodManager com.loveerror.bested I setNextServedViewLocked in view is null
2025-10-26 16:35:26.128 7627-7627 InputMethodManager com.loveerror.bested I FINISH INPUT: mServedView = :android.widget.EditText{cade397 VFED..CL. .F...... 0,0-420,388 aid=1},focus=true,windowFocus=true,autofillUiShowing=false,window=android.view.ViewRootImpl$W@5303461,displayId=0,temporaryDetach=false,hasImeFocus=true
2025-10-26 16:35:26.129 7627-7627 InputMethodManager com.loveerror.bested I getServedView is android.widget.EditText{cade397 VFED..CL. .F...... 0,0-420,388 aid=1}
2025-10-26 16:35:26.129 7627-7627 InputMethodManager com.loveerror.bested I setServedViewLocked in view is null
2025-10-26 16:35:26.131 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : null
2025-10-26 16:35:26.148 7627-7692 OpenGLRenderer com.loveerror.bested D endAllActiveAnimators on 0xb400007bf44edc00 (RippleDrawable) with handle 0xb400007c05b85e00
2025-10-26 16:35:26.163 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0
2025-10-26 16:35:26.168 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:26.169 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:26.171 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:26.171 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:26.189 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree Start ===
2025-10-26 16:35:26.192 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.199 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:26.199 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:26.222 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.226 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.228 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.230 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.231 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.233 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.235 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.236 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.238 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.240 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.242 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.243 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.245 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End ===
2025-10-26 16:35:26.254 7627-8073 System.out com.loveerror.bested I 已填写集团名称: 天猫
2025-10-26 16:35:26.258 7627-8073 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree Start ===
2025-10-26 16:35:26.261 7627-8073 System.out com.loveerror.bested I after 已点击兄弟节点 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.263 7627-8073 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.266 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.268 7627-8073 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.271 7627-8073 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.273 7627-8073 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.283 7627-8073 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.311 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.313 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.343 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.344 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.346 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.351 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.353 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.354 7627-8073 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.355 7627-8073 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:35:26.355 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:35:26.356 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0
2025-10-26 16:35:26.363 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false]
2025-10-26 16:35:26.363 7627-8073 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree End ===
2025-10-26 16:35:27.972 7627-8073 System.out com.loveerror.bested I 点击搜索按钮结果: true
2025-10-26 16:35:53.124 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:53.156 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:53.352 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100
2025-10-26 16:35:53.357 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false
2025-10-26 16:35:53.375 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:53.375 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:53.382 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:90bfb55
2025-10-26 16:35:53.382 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:90bfb55
2025-10-26 16:35:53.384 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000
2025-10-26 16:35:53.388 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for PopupWindow:90bfb55
2025-10-26 16:35:53.388 7627-7627 mDecorView com.loveerror.bested D invokePopup mDecorView params: width=480, height=1008
2025-10-26 16:35:53.391 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:53.391 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:53.392 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0
2025-10-26 16:35:53.394 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0
2025-10-26 16:35:53.406 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0.
2025-10-26 16:35:53.407 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:53.407 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:53.413 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:90bfb55
2025-10-26 16:35:53.413 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x19046f8, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:90bfb55
2025-10-26 16:35:53.418 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior.
2025-10-26 16:35:53.595 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode all the node in jank list is out of time
2025-10-26 16:35:53.597 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true
2025-10-26 16:35:53.597 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:53.597 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:54.428 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:54.428 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:54.429 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:54.431 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:54.446 7627-7627 Choreographer com.loveerror.bested W Frame time is 0.100186996 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:54.450 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:54.488 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:54.488 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:54.509 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled...
2025-10-26 16:35:54.509 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0
2025-10-26 16:35:54.509 7627-7627 System.out com.loveerror.bested I Attempting to show text input dialog for: 查询公司是否注册
2025-10-26 16:35:54.522 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:54.522 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:54.527 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:54.528 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:35:54.545 7627-7627 DecorView[] com.loveerror.bested I pkgName:com.loveerror.bested old windowMode:0 new windoMode:1, isFixedSize:false, isStackNeedCaptionView:true
2025-10-26 16:35:54.563 7627-7627 SmartSlideOverScroller com.loveerror.bested I start init SmartSlideOverScroller and get the overscroller config
2025-10-26 16:35:54.563 7627-7627 SmartSlide...llerConfig com.loveerror.bested I get the overscroller config
2025-10-26 16:35:54.570 7627-7627 HwAdaptiveFrameManager com.loveerror.bested D transmitPackageInfo sHardVelocity=40=617
2025-10-26 16:35:54.581 7627-7627 SmartSlideOverScroller com.loveerror.bested I start init SmartSlideOverScroller and get the overscroller config
2025-10-26 16:35:54.582 7627-7627 SmartSlide...llerConfig com.loveerror.bested I get the overscroller config
2025-10-26 16:35:54.587 7627-7627 HwAdaptiveFrameManager com.loveerror.bested D transmitPackageInfo sHardVelocity=40=617
2025-10-26 16:35:54.605 7627-7627 Settings com.loveerror.bested W Setting device_provisioned has moved from android.provider.Settings.Secure to android.provider.Settings.Global.
2025-10-26 16:35:54.605 7627-7627 Dialog com.loveerror.bested I show dialog,width:-2,height:-2
2025-10-26 16:35:54.608 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100
2025-10-26 16:35:54.609 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false
2025-10-26 16:35:54.624 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:54.624 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:54.630 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on
2025-10-26 16:35:54.630 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:
2025-10-26 16:35:54.632 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000
2025-10-26 16:35:54.636 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for
2025-10-26 16:35:54.637 7627-7627 ZrHung.App...rentWindow com.loveerror.bested D TransparentWindow mHungConfigStatus = 0,mHungConfigEnable = 1
2025-10-26 16:35:54.650 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:54.650 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:54.652 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0
2025-10-26 16:35:54.670 7627-8265 HiTouch_HiTouchSensor com.loveerror.bested I HiTouch restricted: Sub windows restricted.
2025-10-26 16:35:54.670 7627-8265 HiTouch_Pr...reDetector com.loveerror.bested D onAttached, package=com.loveerror.bested, windowType=2038, mIsHiTouchRestricted=true
2025-10-26 16:35:54.717 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0.
2025-10-26 16:35:54.722 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on
2025-10-26 16:35:54.722 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x34f07da, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:
2025-10-26 16:35:54.729 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior.
2025-10-26 16:35:54.770 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true
2025-10-26 16:35:54.822 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0
2025-10-26 16:35:54.822 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : android.view.ViewRootImpl@86ff871
2025-10-26 16:35:54.826 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=WINDOW_FOCUS_GAIN
2025-10-26 16:35:54.828 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION
2025-10-26 16:35:54.857 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on
2025-10-26 16:35:55.580 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.580 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.581 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.581 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.582 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.582 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.583 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:55.592 7627-7627 Choreographer com.loveerror.bested W Frame time is 16.148571 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:55.594 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:55.599 7627-7627 Choreographer com.loveerror.bested W Frame time is 25.643759 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:55.624 7627-7627 Choreographer com.loveerror.bested W Frame time is 16.602488 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:55.633 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.969028 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:55.641 7627-7627 Choreographer com.loveerror.bested W Frame time is 33.334526 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:55.656 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:55.656 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:56.661 7627-7627 HwEditorHelperImpl com.loveerror.bested D isTouchPositionInHightlight.
2025-10-26 16:35:56.667 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:35:56.694 7627-7627 Choreographer com.loveerror.bested W Frame time is 9.135331 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:35:56.721 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested D stopLongPressingPreviewAnimation.
2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested D removeDrawableView.
2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested E removeDrawableView decorview is null.
2025-10-26 16:35:56.731 7627-7627 InputMethodManager com.loveerror.bested I getNextServedViewLocked mCurRootView is android.view.ViewRootImpl@86ff871
2025-10-26 16:35:56.731 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=CHECK_FOCUS
2025-10-26 16:35:56.739 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION
2025-10-26 16:35:56.741 7627-7627 InputMethodManager com.loveerror.bested I showSoftInput, displayId=-1,callers=android.view.inputmethod.InputMethodManager.showSoftInput:1785 android.view.inputmethod.InputMethodManager.showSoftInput:1723 android.widget.TextView.onTouchEvent:11527 android.view.View.dispatchTouchEvent:14955
2025-10-26 16:35:56.741 7627-7627 InputMethodManager com.loveerror.bested D showSoftInput() view=android.widget.EditText{f56b832 VFED..CL. .F.P..ID 0,0-420,388 aid=3} flags=0 reason=SHOW_SOFT_INPUT
2025-10-26 16:35:56.751 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:35:56.751 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:35:56.776 7627-7689 OpenGLRenderer com.loveerror.bested D gpu complete is not signaled
2025-10-26 16:35:56.787 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:56.787 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:56.789 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:56.789 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:56.795 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on
2025-10-26 16:35:56.796 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets show(ime(), fromIme=true)
2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets applyAnimation types:8,show:true, this:android.view.InsetsController@6828548
2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets controlAnimation types: 8
2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets controlAnimation after canel existing types: 8
2025-10-26 16:35:56.800 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3009 scene=IME
2025-10-26 16:35:56.800 7627-8056 HwViewRootImpl com.loveerror.bested I Add sceneId 96 topId: 0
2025-10-26 16:35:56.811 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:56.812 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:56.814 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:35:56.814 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:35:57.193 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3010 scene=IME
2025-10-26 16:35:57.194 7627-8056 HwViewRootImpl com.loveerror.bested I remove sceneId 96 topId: 0
2025-10-26 16:36:01.506 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:01.546 7627-7627 Choreographer com.loveerror.bested W Frame time is 4.911785 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:01.552 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:36:01.555 7627-7627 Choreographer com.loveerror.bested W Frame time is 11.886955 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:01.570 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:36:01.570 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:36:01.595 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled...
2025-10-26 16:36:01.595 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0
2025-10-26 16:36:01.598 7627-7627 InputMethodManager com.loveerror.bested I setNextServedViewLocked in view is null
2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I FINISH INPUT: mServedView = :android.widget.EditText{f56b832 VFED..CL. .F...... 0,0-420,388 aid=3},focus=true,windowFocus=true,autofillUiShowing=false,window=android.view.ViewRootImpl$W@94a47a8,displayId=0,temporaryDetach=false,hasImeFocus=true
2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I getServedView is android.widget.EditText{f56b832 VFED..CL. .F...... 0,0-420,388 aid=3}
2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I setServedViewLocked in view is null
2025-10-26 16:36:01.602 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : null
2025-10-26 16:36:01.612 7627-7692 OpenGLRenderer com.loveerror.bested D endAllActiveAnimators on 0xb400007b82467c00 (RippleDrawable) with handle 0xb400007b966af380
2025-10-26 16:36:01.628 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0
2025-10-26 16:36:01.632 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:01.632 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:01.637 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:01.637 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:01.657 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree Start ===
2025-10-26 16:36:01.657 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.675 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:36:01.676 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null
2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.677 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.677 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.678 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.679 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.680 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.680 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.681 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.682 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.682 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.683 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End [find] ===
2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint请输入集团名称 findNodeByHint Tree End ===
2025-10-26 16:36:01.710 7627-8310 System.out com.loveerror.bested I 已填写集团名称: 天猫
2025-10-26 16:36:01.715 7627-8310 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree Start ===
2025-10-26 16:36:01.716 7627-8310 System.out com.loveerror.bested I after 已点击兄弟节点 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.717 7627-8310 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.722 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.727 7627-8310 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.738 7627-8310 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.753 7627-8310 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.754 7627-8310 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.755 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.756 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.756 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.758 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.758 7627-8310 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.759 7627-8310 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:01.759 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:01.770 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false]
2025-10-26 16:36:01.770 7627-8310 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree End ===
2025-10-26 16:36:01.820 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0
2025-10-26 16:36:17.567 7627-8310 System.out com.loveerror.bested I 点击搜索按钮结果: true
2025-10-26 16:36:46.687 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:46.708 7627-7627 Choreographer com.loveerror.bested W Frame time is 3.600421 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:46.715 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:36:46.725 7627-7627 Choreographer com.loveerror.bested W Frame time is 3.242608 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:46.750 7627-7627 Choreographer com.loveerror.bested W Frame time is 1.568748 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:47.075 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100
2025-10-26 16:36:47.077 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false
2025-10-26 16:36:47.097 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:47.097 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:47.109 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:e4a803e
2025-10-26 16:36:47.109 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:e4a803e
2025-10-26 16:36:47.111 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000
2025-10-26 16:36:47.117 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for PopupWindow:e4a803e
2025-10-26 16:36:47.117 7627-7627 mDecorView com.loveerror.bested D invokePopup mDecorView params: width=480, height=1008
2025-10-26 16:36:47.122 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:36:47.122 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:36:47.123 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0
2025-10-26 16:36:47.127 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0
2025-10-26 16:36:47.148 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0.
2025-10-26 16:36:47.151 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:47.152 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:47.162 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:e4a803e
2025-10-26 16:36:47.162 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x6245bb5, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:e4a803e
2025-10-26 16:36:47.171 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior.
2025-10-26 16:36:47.568 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true
2025-10-26 16:36:47.570 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:47.570 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:47.572 7627-7641 OpenGLRenderer com.loveerror.bested I Davey! PopupWindow:e4a803e. duration=792ms; Flags=1, FrameTimelineVsyncId=8231734, IntendedVsync=375068874453702, Vsync=375069224453688, InputEventId=0, HandleInputStart=375069230758392, AnimationStart=375069230854746, PerformTraversalsStart=375069230882350, DrawStart=375069644821413, FrameDeadline=375068891120368, FrameInterval=375069230090684, FrameStartTime=16666666, SyncQueued=375069661807350, SyncStart=375069662247454, IssueDrawCommandsStart=375069662391725, SwapBuffers=375069663663079, FrameCompleted=375069667459433, DequeueBufferDuration=17187, QueueBufferDuration=1906771, GpuCompleted=375069666209433, SwapBuffersCompleted=375069667459433, DisplayPresentTime=0, MetaDataFps=0,
2025-10-26 16:36:47.588 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode jank list is null
2025-10-26 16:36:52.551 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:52.552 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:52.554 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:52.556 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false
2025-10-26 16:36:52.562 7627-7627 Choreographer com.loveerror.bested W Frame time is 9.037928 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
2025-10-26 16:36:52.568 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement.
2025-10-26 16:36:52.613 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset.
2025-10-26 16:36:52.613 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0
2025-10-26 16:36:52.630 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode all the node in jank list is out of time
2025-10-26 16:36:52.641 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled...
2025-10-26 16:36:52.641 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0
2025-10-26 16:36:52.672 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:52.672 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:52.677 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0
2025-10-26 16:36:52.713 7627-7627 System.out com.loveerror.bested I === View Tree Start ===
2025-10-26 16:36:52.715 7627-7627 System.out com.loveerror.bested I android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.817 7627-7627 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.818 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.820 7627-7627 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.822 7627-7627 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.824 7627-7627 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.826 7627-7627 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.828 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.830 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.832 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.834 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.836 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.838 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.840 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.842 7627-7627 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.844 7627-7627 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true]
2025-10-26 16:36:52.846 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.848 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫技术有限公司(57171447535)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.850 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.852 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.855 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区文一西路969号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.857 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=A1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.859 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.861 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:张慈] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.863 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.865 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=永康市天猫玻璃制品厂(57179481821)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.867 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.872 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.878 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@金华市@永康市@永康城区@总部中心金山大厦3楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.884 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.889 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.894 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:FW陈有双(铁通)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.895 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.901 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫网络有限公司(57171447534)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.907 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.911 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.916 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@五常大道168号3幢5层506室] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.921 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.926 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.931 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:黄仕芳(铁通)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.933 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.939 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=诸暨天猫针纺有限公司(57175393059)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.947 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.953 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.960 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@诸暨市@大唐镇@倪村路188号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.974 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:52.988 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.003 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:汪玲] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.004 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.019 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫校园技术服务有限公司(57171682712)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.034 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.041 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.049 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@文一幢5层561室] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.058 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.070 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.080 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.083 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.094 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫优选电子商务有限公司(571711532758)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.112 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.127 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.138 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道文一西路969号3幢4层495] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.149 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.159 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.177 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.179 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.189 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫车站科技有限公司(57171659038)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.200 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.209 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.217 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道文一西路969号阿里巴巴西溪园区3号楼5F] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:53.225 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.232 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.243 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:许捷] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.246 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.259 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫技术有限公司温州分公司(57177634893)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.276 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.289 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.304 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@温州市@瓯海区@郭溪街道@金州工业区3楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.318 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.333 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.347 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周佳佳] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.352 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.366 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫供应链管理有限公司(57171739022)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.382 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.395 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.408 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@海创园] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.422 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.436 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.450 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.455 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.469 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=余姚市天猫电器有限公司(57174498257)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.485 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.498 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.509 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@宁波市@余姚市@低塘街道@郑巷村横埭] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.526 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.543 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.559 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:郑蓥] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.563 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.578 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=吴江市庙港华丰纺织厂劳天猫分部(57175478310)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.594 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.608 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.622 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@柯桥区@钱清镇@106县道] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.636 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.650 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.664 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周小红] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.668 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.682 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫机电科技有限公司(571751040074)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.700 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.716 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.730 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省绍兴市诸暨市次坞镇迪奥路13号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.744 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.769 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.787 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周航波] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.794 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.812 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州萧山天猫数码有限公司(571751033322)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.833 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.852 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.871 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@萧山区@城厢街道@浙江省杭州市萧山区城厢街道萧绍路1258号二层] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.893 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.917 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.946 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周宣] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.955 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:53.979 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=绍兴微鲸贸易有限公司天猫部门(57175477320)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.005 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.028 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.047 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@柯桥区@杨汛桥镇@窗帘产业园] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.064 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.084 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.105 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:洪佳铭] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.113 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.135 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫校园技术服务有限公司(571711532880)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.160 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.186 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.216 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道爱橙街2号1幢] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.238 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.260 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.288 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.297 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.322 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=仙居县车品天猫店王奕佳店(57176518906)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.350 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.372 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.396 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@仙居县@官路镇@东张村溪滩街9弄25号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.420 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.443 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.471 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.480 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.508 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=天台飞天工旗舰店(天猫)(57176521785)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.536 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.565 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.587 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@天台县@坦头镇@鱼山村] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.610 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.634 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.660 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:范晓燕] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.670 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.692 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州怀瑾科技有限公司(电商--千岁好天猫旗舰店)(57176469586)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.716 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.740 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.759 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@椒江区@白云街道@中心大道227号台州移动机房大楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.782 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.805 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.828 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.835 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.857 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=台州市路桥天猫机电设备厂(57176570514)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.880 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.904 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.925 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@路桥区@金清镇@文昌路港湾印象斜对面] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.946 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.970 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:54.996 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:冯茜茜] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.005 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.032 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=藤原天猫商城(57176518465)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.067 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.096 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.120 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省台州市温岭市泽国镇夹屿村双峰大道8] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.145 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.173 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.199 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:李志涵] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false]
2025-10-26 16:36:55.207 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true]
2025-10-26 16:36:55.214 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false]
2025-10-26 16:36:55.214 7627-7627 System.out com.loveerror.bested I === View Tree End ===
2025-10-26 16:36:55.216 7627-7627 Choreographer com.loveerror.bested I Skipped 152 frames! The application may be doing too much work on its main thread.
2025-10-26 16:36:55.216 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0
2025-10-26 16:36:55.245 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true}
2025-10-26 16:36:55.246 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false}
2025-10-26 16:36:55.279 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode jank list is null
2025-10-26 16:37:55.692 7627-7627 WindowManager com.loveerror.bested I trimMemory level: 5

View File

@@ -6,6 +6,7 @@ import android.content.Intent
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import com.loveerror.bested.handler.ZjMccmCrm import com.loveerror.bested.handler.ZjMccmCrm
import com.loveerror.bested.tool.AccessibilityTool import com.loveerror.bested.tool.AccessibilityTool
import com.loveerror.bested.tool.RootNodeCallbackImpl
import com.loveerror.bested.tool.WebViewTool import com.loveerror.bested.tool.WebViewTool
class UIInspectorService : AccessibilityService() { class UIInspectorService : AccessibilityService() {
@@ -15,8 +16,9 @@ class UIInspectorService : AccessibilityService() {
override fun onServiceConnected() { override fun onServiceConnected() {
super.onServiceConnected() super.onServiceConnected()
val rootNodeCallbackImpl = RootNodeCallbackImpl(uiInspectorService = this)
// 初始化 ZjMccmCrm // 初始化 ZjMccmCrm
zjMccmCrm = ZjMccmCrm(this) zjMccmCrm = ZjMccmCrm(rootNodeCallbackImpl)
zjMccmCrm.initialize(this) zjMccmCrm.initialize(this)
// 设置配置 // 设置配置
serviceInfo = createServiceInfo() serviceInfo = createServiceInfo()
@@ -36,6 +38,10 @@ class UIInspectorService : AccessibilityService() {
or AccessibilityEvent.TYPE_VIEW_FOCUSED or AccessibilityEvent.TYPE_VIEW_FOCUSED
or AccessibilityEvent.TYPE_WINDOWS_CHANGED or AccessibilityEvent.TYPE_WINDOWS_CHANGED
or AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED or AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
or AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED
or AccessibilityEvent.TYPE_VIEW_SCROLLED
or AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED
or AccessibilityEvent.TYPES_ALL_MASK
-> { -> {
handleWindowChangeOpt(event) handleWindowChangeOpt(event)
} }

View File

@@ -1,18 +1,14 @@
package com.loveerror.bested package com.loveerror.bested
import android.app.Application import android.app.Application
import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Build import android.os.Build
import android.provider.Settings import android.provider.Settings
import com.loveerror.bested.button.DragFloatingButton
import com.loveerror.bested.button.GlobalFloatingButtonManager import com.loveerror.bested.button.GlobalFloatingButtonManager
import com.loveerror.bested.task.TaskManager
class MyApplication : Application() { class MyApplication : Application() {
private lateinit var buttonManager: GlobalFloatingButtonManager private lateinit var buttonManager: GlobalFloatingButtonManager
private lateinit var broadcastReceiver: BroadcastReceiver
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
instance = this instance = this
@@ -27,6 +23,11 @@ class MyApplication : Application() {
} }
fun getFloatingButton(context: Context): DragFloatingButton {
return buttonManager.getFloatingButton(context)
}
override fun onTerminate() { override fun onTerminate() {
super.onTerminate() super.onTerminate()
buttonManager.cleanup() // 清理包括广播注销 buttonManager.cleanup() // 清理包括广播注销

View File

@@ -1,10 +1,10 @@
package com.loveerror.bested package com.loveerror.bested
import android.view.accessibility.AccessibilityNodeInfo
import android.accessibilityservice.AccessibilityService
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityNodeInfo
import com.loveerror.bested.tool.RootNodeCallback
class SelectAccessibility(private val service: UIInspectorService) { class SelectAccessibility(private val service: RootNodeCallback) {
fun handleSelectPopup(event: AccessibilityEvent) { fun handleSelectPopup(event: AccessibilityEvent) {
@@ -18,7 +18,7 @@ class SelectAccessibility(private val service: UIInspectorService) {
// 延迟一小段时间确保弹窗完全加载 // 延迟一小段时间确保弹窗完全加载
Thread.sleep(500) Thread.sleep(500)
val root = service.rootInActiveWindow val root = service.getRootNodeReceived()
if (root != null) { if (root != null) {
// 查找所有可点击的选项 // 查找所有可点击的选项
traverseAndFindOptions(root) traverseAndFindOptions(root)
@@ -67,7 +67,7 @@ class SelectAccessibility(private val service: UIInspectorService) {
} }
fun selectOptionByText(optionText: String) { fun selectOptionByText(optionText: String) {
val root = service.rootInActiveWindow val root = service.getRootNodeReceived()
if (root != null) { if (root != null) {
val optionNodes = root.findAccessibilityNodeInfosByText(optionText) val optionNodes = root.findAccessibilityNodeInfosByText(optionText)
optionNodes.firstOrNull()?.let { node -> optionNodes.firstOrNull()?.let { node ->

View File

@@ -2,19 +2,22 @@ package com.loveerror.bested.button
enum class ActionEvent { enum class ActionEvent {
START_ACTION("com.loveerror.bested.START_ACTION", "启动按钮"), START_ACTION("com.loveerror.bested.START_ACTION", "去普通建档"),
FILL_ACTION("com.loveerror.bested.FILL_ACTION", "填充表单"), FILL_ACTION("com.loveerror.bested.FILL_ACTION", "普通建档填充表单"),
SET_DATA_SOURCE("com.loveerror.bested.SET_DATA_SOURCE", "设置数据源"), SET_DATA_SOURCE("com.loveerror.bested.SET_DATA_SOURCE", "设置数据源"),
HIDE_FLOATING_BUTTON("com.loveerror.bested.HIDE_FLOATING_BUTTON", "隐藏悬浮按钮"), HIDE_FLOATING_BUTTON("com.loveerror.bested.HIDE_FLOATING_BUTTON", "隐藏悬浮按钮"),
PRINT_CURRENT_PAGE("com.loveerror.bested.PRINT_CURRENT_PAGE", "打印当前界面"), PRINT_CURRENT_PAGE("com.loveerror.bested.PRINT_CURRENT_PAGE", "打印当前界面"),
QUERY_COMPANY_REGISTER("com.loveerror.bested.QUERY_COMPANY_REGISTER", "查询公司是否注册",isDisplay = true, menuWithText = true),
UNKNOWN("com.loveerror.bested.UNKNOWN", "未知",isDisplay = false);
constructor(event: String, menuName: String, isDisplay: Boolean = true, menuWithText: Boolean= false){ QUERY_COMPANY_REGISTER("com.loveerror.bested.QUERY_COMPANY_REGISTER", "去全网查询",isDisplay = true),
QUERY_COMPANY_SEARCH_ACTION("com.loveerror.bested.QUERY_COMPANY_SEARCH_ACTION", "查询公司是否注册",isDisplay = true, menuWithText = listOf("companyNames")),
UNKNOWN("com.loveerror.bested.UNKNOWN", "未知",isDisplay = false, enable = false);
constructor(event: String, menuName: String, isDisplay: Boolean = true, menuWithText: List<String> = emptyList(), enable: Boolean = true){
this.event = event this.event = event
this.menuName = menuName this.menuName = menuName
this.menuWithText = menuWithText this.menuWithText = menuWithText
this.isDisplay = isDisplay this.isDisplay = isDisplay
this.enable = enable
} }
val menuName: String val menuName: String
@@ -22,7 +25,8 @@ enum class ActionEvent {
val isDisplay: Boolean val isDisplay: Boolean
val menuWithText: Boolean val menuWithText: List<String>
val enable: Boolean
companion object { companion object {
fun getByMenuName(menuName: String) :ActionEvent { fun getByMenuName(menuName: String) :ActionEvent {

View File

@@ -0,0 +1,46 @@
// 新建文件 CircularProgressDrawable.kt
package com.loveerror.bested.button
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.RectF
import android.graphics.drawable.Drawable
class CircularProgressDrawable : Drawable() {
private var progress = 0
private val paint = Paint(Paint.ANTI_ALIAS_FLAG)
private val rectF = RectF()
fun setProgress(progress: Int) {
this.progress = progress.coerceIn(0, 100)
invalidateSelf()
}
override fun draw(canvas: Canvas) {
val bounds = bounds
rectF.set(bounds)
// 绘制蓝色背景圆
paint.style = Paint.Style.FILL
paint.color = Color.BLUE
canvas.drawOval(rectF, paint)
// 绘制绿色进度扇形
if (progress > 0) {
paint.color = Color.GREEN
val sweepAngle = 360f * progress / 100f
canvas.drawArc(rectF, -90f, sweepAngle, true, paint)
}
}
override fun setAlpha(alpha: Int) {
paint.alpha = alpha
}
override fun setColorFilter(colorFilter: android.graphics.ColorFilter?) {
paint.colorFilter = colorFilter
}
override fun getOpacity(): Int = android.graphics.PixelFormat.TRANSLUCENT
}

View File

@@ -13,8 +13,8 @@ import android.widget.EditText
import android.widget.PopupMenu import android.widget.PopupMenu
import android.app.Activity import android.app.Activity
import android.content.ContextWrapper import android.content.ContextWrapper
import android.app.Application import android.widget.LinearLayout
import android.widget.Toast
class DragFloatingButton(context: Context) : View(context) { class DragFloatingButton(context: Context) : View(context) {
private val paint = Paint().apply { private val paint = Paint().apply {
isAntiAlias = true isAntiAlias = true
@@ -31,22 +31,27 @@ class DragFloatingButton(context: Context) : View(context) {
init { init {
// 初始化时创建正确的 WindowManager.LayoutParams // 初始化时创建正确的 WindowManager.LayoutParams
layoutParams = WindowManager.LayoutParams( this.layoutParams = WindowManager.LayoutParams(
150, 150, 150, 150,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT PixelFormat.TRANSLUCENT
) )
this.layoutParams = layoutParams
} }
override fun onDraw(canvas: Canvas) { override fun onDraw(canvas: Canvas) {
super.onDraw(canvas) super.onDraw(canvas)
canvas.let {
// 绘制圆形按钮
paint.color = Color.BLUE
it.drawCircle(width / 2f, height / 2f, minOf(width, height) / 2f, paint)
// 绘制菜单图标(三个点) if (isProgressVisible && progressDrawable != null) {
// 设置进度drawable的边界
progressDrawable?.setBounds(0, 0, width, height)
progressDrawable?.draw(canvas)
} else {
// 绘制原始按钮
paint.color = Color.BLUE
canvas.drawCircle(width / 2f, height / 2f, minOf(width, height) / 2f, paint)
// 绘制菜单图标
paint.color = Color.WHITE paint.color = Color.WHITE
paint.strokeWidth = 8f paint.strokeWidth = 8f
val centerX = width / 2f val centerX = width / 2f
@@ -54,9 +59,9 @@ class DragFloatingButton(context: Context) : View(context) {
val dotRadius = 4f val dotRadius = 4f
val spacing = 12f val spacing = 12f
it.drawCircle(centerX, centerY - spacing, dotRadius, paint) canvas.drawCircle(centerX, centerY - spacing, dotRadius, paint)
it.drawCircle(centerX, centerY, dotRadius, paint) canvas.drawCircle(centerX, centerY, dotRadius, paint)
it.drawCircle(centerX, centerY + spacing, dotRadius, paint) canvas.drawCircle(centerX, centerY + spacing, dotRadius, paint)
} }
} }
@@ -83,10 +88,6 @@ class DragFloatingButton(context: Context) : View(context) {
windowManager.updateViewLayout(this, layoutParams!!) windowManager.updateViewLayout(this, layoutParams!!)
} }
// if (layoutParams == null) {
// layoutParams = this.layoutParams as? WindowManager.LayoutParams
// }
originalX = layoutParams?.x ?: 0 originalX = layoutParams?.x ?: 0
originalY = layoutParams?.y ?: 0 originalY = layoutParams?.y ?: 0
isDragging = false isDragging = false
@@ -130,7 +131,7 @@ class DragFloatingButton(context: Context) : View(context) {
for (item in ActionEvent.entries){ for (item in ActionEvent.entries){
if (item.isDisplay) { if (item.isDisplay) {
// 检查是否需要文本输入 // 检查是否需要文本输入
if (item.menuWithText) { if (item.menuWithText.isNotEmpty()) {
popup.menu.add(0, item.ordinal, 0, item.menuName).setOnMenuItemClickListener { popup.menu.add(0, item.ordinal, 0, item.menuName).setOnMenuItemClickListener {
showTextInputDialog(item) showTextInputDialog(item)
true true
@@ -144,44 +145,45 @@ class DragFloatingButton(context: Context) : View(context) {
// 为不需要文本输入的菜单项设置监听器 // 为不需要文本输入的菜单项设置监听器
popup.setOnMenuItemClickListener { item -> popup.setOnMenuItemClickListener { item ->
val actionEvent = ActionEvent.entries.find { it.ordinal == item.itemId } val actionEvent = ActionEvent.entries.find { it.ordinal == item.itemId }
if (actionEvent != null && !actionEvent.menuWithText) { if (actionEvent != null && actionEvent.menuWithText.isEmpty()) {
triggerActionEvent(actionEvent) triggerActionEvent(actionEvent)
} }
true true
} }
popup.show() popup.show()
// popup.setOnMenuItemClickListener { item ->
// val actionEvent = ActionEvent.getByMenuName(item.title.toString())
// try {
// context.sendBroadcast(android.content.Intent(actionEvent.event).apply {
// setPackage(context.packageName)
// })
// } catch (e: IllegalArgumentException) {
// // 处理枚举值不存在的情况
// e.printStackTrace()
// println("枚举值不存在: ${item.title},${actionEvent}, ${e.toString()}")
// }
// true
// }
//
// popup.show()
} }
private fun showTextInputDialog(actionEvent: ActionEvent) { private fun showTextInputDialog(actionEvent: ActionEvent) {
println("Attempting to show text input dialog for: ${actionEvent.menuName}") println("Attempting to show text input dialog for: ${actionEvent.menuName}")
// 根据 actionEvent.menuWithText 创建对应数量的editText 放到一个 linearLayout 中
val editTexts = arrayListOf<EditText>()
val linearLayout = LinearLayout(context).apply {
// 设置布局参数
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
}
for (menuWithText in actionEvent.menuWithText) {
val editText = EditText(context).apply {
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE
setLines(5)
gravity = Gravity.TOP or Gravity.START
setTextIsSelectable(true)
movementMethod = ScrollingMovementMethod.getInstance()
hint = menuWithText
tag = menuWithText
val editText = EditText(context).apply { }
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE linearLayout.addView(editText)
setLines(5) editTexts.add(editText)
gravity = Gravity.TOP or Gravity.START
setTextIsSelectable(true)
movementMethod = ScrollingMovementMethod.getInstance()
} }
val dialog = AlertDialog.Builder(context) val dialog = AlertDialog.Builder(context)
.setTitle("请输入公司名称") .setTitle("请输入公司名称")
.setView(editText) .setView(linearLayout)
.setPositiveButton("确定", null) // 先设置为null稍后手动处理 .setPositiveButton("确定", null) // 先设置为null稍后手动处理
.setNegativeButton("取消", null) .setNegativeButton("取消", null)
.create() .create()
@@ -190,16 +192,22 @@ class DragFloatingButton(context: Context) : View(context) {
dialog.setOnShowListener { dialog.setOnShowListener {
val positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE) val positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE)
positiveButton.setOnClickListener { positiveButton.setOnClickListener {
val inputText = editText.text.toString().trim() val textWithTags = mutableListOf<TextWithTag>()
// 如果文本为空,则显示提示并不关闭对话框 // 遍历editText eeditTexts
if (inputText.isEmpty()) { for (editText in editTexts) {
// 在EditText下方显示错误提示 val inputText = editText.text.toString().trim()
editText.error = "请输入公司名称" // 如果文本为空,则显示提示并不关闭对话框
// 不关闭对话框 if (inputText.isEmpty()) {
return@setOnClickListener // 在EditText下方显示错误提示
editText.error = "请输入"+editText.hint
// 不关闭对话框
return@setOnClickListener
}
textWithTags.add(TextWithTag(inputText, editText.tag.toString()))
} }
// 输入有效,触发事件并关闭对话框 // 输入有效,触发事件并关闭对话框
triggerActionEvent(actionEvent, inputText) triggerActionEvent(actionEvent, textWithTags)
dialog.dismiss() dialog.dismiss()
} }
} }
@@ -210,7 +218,14 @@ class DragFloatingButton(context: Context) : View(context) {
dialog.show() dialog.show()
} }
class TextWithTag {
var text: String
var tag: String
constructor(text: String, tag: String) {
this.text = text
this.tag = tag
}
}
private fun getContextForDialog(): Context? { private fun getContextForDialog(): Context? {
var currentContext = context var currentContext = context
@@ -223,14 +238,14 @@ class DragFloatingButton(context: Context) : View(context) {
return null return null
} }
private fun triggerActionEvent(actionEvent: ActionEvent, textInput: String? = null) { private fun triggerActionEvent(actionEvent: ActionEvent, textInputs: MutableList<TextWithTag> = mutableListOf()) {
try { try {
val intent = android.content.Intent(actionEvent.event).apply { val intent = android.content.Intent(actionEvent.event).apply {
setPackage(context.packageName) setPackage(context.packageName)
} }
// 如果有文本输入添加到Intent中 // 如果有文本输入添加到Intent中
textInput?.let { for(textWithTag in textInputs){
intent.putExtra("textInput", it) intent.putExtra(textWithTag.tag, textWithTag.text)
} }
context.sendBroadcast(intent) context.sendBroadcast(intent)
} catch (e: IllegalArgumentException) { } catch (e: IllegalArgumentException) {
@@ -238,6 +253,32 @@ class DragFloatingButton(context: Context) : View(context) {
println("枚举值不存在: $actionEvent, ${e.toString()}") println("枚举值不存在: $actionEvent, ${e.toString()}")
} }
} }
///
private var progressDrawable: CircularProgressDrawable? = null
private var isProgressVisible = false
// 设置进度值
fun setProgress(progress: Int) {
if (progressDrawable == null) {
progressDrawable = CircularProgressDrawable()
}
progressDrawable?.setProgress(progress)
if (isProgressVisible) {
invalidate()
}
}
// 显示/隐藏进度条
fun showProgress(show: Boolean) {
isProgressVisible = show
if (show && progressDrawable == null) {
progressDrawable = CircularProgressDrawable()
}
invalidate()
}
} }

View File

@@ -18,6 +18,13 @@ class GlobalFloatingButtonManager(private val context: Context) {
private var broadcastReceiver: BroadcastReceiver? = null private var broadcastReceiver: BroadcastReceiver? = null
private var isEnabled = true // 添加启用状态标志 private var isEnabled = true // 添加启用状态标志
fun getFloatingButton(context: Context): DragFloatingButton {
if (floatingButton == null) {
floatingButton = DragFloatingButton(context.applicationContext)
}
return floatingButton!!
}
fun initialize() { fun initialize() {
// 注册广播接收器 // 注册广播接收器
broadcastReceiver = object : BroadcastReceiver() { broadcastReceiver = object : BroadcastReceiver() {

View File

@@ -0,0 +1,38 @@
package com.loveerror.bested.handler
class FieldName {
val defaultValue: String
val type: FieldType
constructor(fieldName: String, hintText: String, defaultValue: String, type: FieldType = FieldType.TEXT){
this.fieldName = fieldName
this.hintText = hintText
this.defaultValue = defaultValue
this.type = type
}
val fieldName: String
val hintText: String
}
enum class FieldType {
TEXT,
SELECT,
SEARCH_SELECT,
CHECKBOX,
RADIO,
DATE,
TIME,
NUMBER,
CURRENCY,
EMAIL,
PHONE,
ADDRESS,
URL,
PASSWORD,
FILE,
IMAGE,
VIDEO,
AUDIO,
OTHER
}

View File

@@ -1,56 +1,20 @@
package com.loveerror.bested.handler package com.loveerror.bested.handler
import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo
import com.loveerror.bested.UIInspectorService
import com.loveerror.bested.tool.AccessibilityTool import com.loveerror.bested.tool.AccessibilityTool
import com.loveerror.bested.tool.AccessibilityTool.Companion.performBottomSheetSelection
import com.loveerror.bested.tool.NodeToolHint import com.loveerror.bested.tool.NodeToolHint
import com.loveerror.bested.tool.NodeToolText import com.loveerror.bested.tool.NodeToolText
import com.loveerror.bested.tool.NodeToolTime import com.loveerror.bested.tool.RootNodeCallback
class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService){ class NormalGroupCreateForm(private val rootNodeCallback: RootNodeCallback) {
fun getRootInActiveWindow(): AccessibilityNodeInfo?{ fun getRootInActiveWindow(): AccessibilityNodeInfo? {
return uiInspectorService.rootInActiveWindow return rootNodeCallback.getRootNodeReceived()
}
class FieldName {
val fieldName: String
val hintText: String
val defaultValue: String
val type: FieldType
constructor(fieldName: String, hintText: String, defaultValue: String, type: FieldType = FieldType.TEXT){
this.fieldName = fieldName
this.hintText = hintText
this.defaultValue = defaultValue
this.type = type
}
}
enum class FieldType {
TEXT,
SELECT,
SEARCH_SELECT,
CHECKBOX,
RADIO,
DATE,
TIME,
NUMBER,
CURRENCY,
EMAIL,
PHONE,
ADDRESS,
URL,
PASSWORD,
FILE,
IMAGE,
VIDEO,
AUDIO,
OTHER
} }
var fields = arrayListOf<FieldName>() var fields = arrayListOf<FieldName>()
init { init {
fields.add(FieldName("集团名称", "请输入集团名称", "集团abc", FieldType.TEXT)) fields.add(FieldName("集团名称", "请输入集团名称", "集团abc", FieldType.TEXT))
fields.add(FieldName("证件名称", "证件名称", "jituan", FieldType.TEXT)) fields.add(FieldName("证件名称", "证件名称", "jituan", FieldType.TEXT))
@@ -66,11 +30,8 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
fields.add(FieldName("集团等级", "", "D", FieldType.TEXT)) fields.add(FieldName("集团等级", "", "D", FieldType.TEXT))
fields.add(FieldName("建筑物名称", "请输入搜索地址", "金牛座", FieldType.SEARCH_SELECT)) fields.add(FieldName("建筑物名称", "请输入搜索地址", "金牛座", FieldType.SEARCH_SELECT))
fields.add(FieldName("细分客群", "", "其他", FieldType.SELECT)) fields.add(FieldName("细分客群", "", "其他", FieldType.SELECT))
} }
/** /**
* 自动填充普通集团建档表单 * 自动填充普通集团建档表单
* @param root AccessibilityNodeInfo根节点 * @param root AccessibilityNodeInfo根节点
@@ -95,27 +56,46 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
// 先展开分类信息区域 // 先展开分类信息区域
// expandClassificationSection(root) // expandClassificationSection(root)
for(field in fields){ for (field in fields) {
if (field.type == FieldType.SELECT){ if (field.type == FieldType.SELECT) {
performBottomSheetSelection(root, field.fieldName, fieldMap[field.fieldName] ?: field.defaultValue) AccessibilityTool.performBottomSheetSelection(
}else if(field.type == FieldType.TIME){ rootNodeCallback = rootNodeCallback,
field.fieldName,
fieldMap[field.fieldName] ?: field.defaultValue
)
} else if (field.type == FieldType.TIME) {
// 格式化证件有效期 >2090-11-23 格式化为2090-11-23 // 格式化证件有效期 >2090-11-23 格式化为2090-11-23
val date = normalizeExpiryDate(fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue) val date = AccessibilityTool.normalizeExpiryDate(
performBottomTimeSelection(root, field.fieldName,date) fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue
)
AccessibilityTool.performBottomTimeSelection(
rootNodeCallback,
field.fieldName,
date
)
}else if (field.type == FieldType.SEARCH_SELECT){ } else if (field.type == FieldType.SEARCH_SELECT) {
performBottomSearchSelection(root, field.fieldName, field.hintText, fieldMap[field.fieldName] ?: field.defaultValue) AccessibilityTool.performBottomSearchSelection(
}else{ rootNodeCallback, field.fieldName,
fillEditTextByHintText(root,fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName, field.hintText) field.hintText, fieldMap[field.fieldName] ?: field.defaultValue
)
} else {
AccessibilityTool.fillEditTextByHintText(
root, fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName,
field.hintText
)
} }
} }
AccessibilityTool.printViewTree(uiInspectorService.rootInActiveWindow,"after 已点击兄弟节点") AccessibilityTool.printViewTree(
var rootNew = uiInspectorService.rootInActiveWindow rootNodeCallback.getRootNodeReceived(),
"after 已点击兄弟节点"
)
var rootNew = rootNodeCallback.getRootNodeReceived()
var peopleCountNode = NodeToolText.findNodeByText(rootNew,"请输入人数") var peopleCountNode = NodeToolText.findNodeByText(rootNew, "请输入人数")
if (peopleCountNode == null){ if (peopleCountNode == null) {
println("未找到员工数输入框") println("未找到员工数输入框")
// 使用示例 // 使用示例
val targetNode = NodeToolText.findNodeByText(root, "分类信息") val targetNode = NodeToolText.findNodeByText(root, "分类信息")
@@ -132,13 +112,17 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
} else { } else {
println("未找到可点击的兄弟节点") println("未找到可点击的兄弟节点")
} }
rootNew = uiInspectorService.rootInActiveWindow rootNew = rootNodeCallback.getRootNodeReceived()
peopleCountNode = NodeToolText.findNodeByText(rootNew,"请输入人数") peopleCountNode = NodeToolText.findNodeByText(rootNew, "请输入人数")
} }
fillEditText(peopleCountNode, fieldMap["员工数"] ?: "1","员工数") AccessibilityTool.fillEditText(peopleCountNode, fieldMap["员工数"] ?: "1", "员工数")
// fillEditTextByHintText(rootNew,fieldMap["员工数"] ?: "1", "员工数", "请输入人数") // fillEditTextByHintText(rootNew,fieldMap["员工数"] ?: "1", "员工数", "请输入人数")
clickToOpenBottomSheetAddress(root, "请点击此处打点","浙江省杭州市余杭区高顺路8号五常西溪软件园金牛座A座") clickToOpenBottomSheetAddress(
root,
"请点击此处打点",
"浙江省杭州市余杭区高顺路8号五常西溪软件园金牛座A座"
)
// 示例:点击"集团状态"触发底部选择,选择"在网集团" // 示例:点击"集团状态"触发底部选择,选择"在网集团"
// fillCompanyNameField(root, groupName) // fillCompanyNameField(root, groupName)
@@ -147,19 +131,23 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
} }
// 打点 // 打点
private fun clickToOpenBottomSheetAddress(root: AccessibilityNodeInfo, triggerText: String,address: String) { private fun clickToOpenBottomSheetAddress(
root: AccessibilityNodeInfo,
triggerText: String,
address: String
) {
// //
val triggerNode = NodeToolText.findNodeByText(root, triggerText) val triggerNode = NodeToolText.findNodeByText(root, triggerText)
// 父级的可点击 // 父级的可点击
if (triggerNode != null ) { if (triggerNode != null) {
AccessibilityTool.performClick(triggerNode) AccessibilityTool.performClick(triggerNode)
println("已点击打点按钮") println("已点击打点按钮")
} else { } else {
println("未找到打点按钮") println("未找到打点按钮")
return return
} }
if(!checkTextViewWithRetry()){ if (!checkTextViewWithRetry()) {
println("未找到宽带选址") println("未找到宽带选址")
return return
} }
@@ -176,7 +164,7 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
} }
Thread.sleep(3000) Thread.sleep(3000)
var clickFirst = findTargetElement(getRootInActiveWindow()) var clickFirst = findTargetElement(getRootInActiveWindow())
if(clickFirst == null){ if (clickFirst == null) {
println("clickFirst is null") println("clickFirst is null")
return return
} }
@@ -184,13 +172,14 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
Thread.sleep(3000) Thread.sleep(3000)
var searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索") var searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索")
if(searchButton ==null){ if (searchButton == null) {
println("未找到搜索按钮") println("未找到搜索按钮")
return return
} }
// 获取搜索 按钮 前面挨着的 android.widget.EditText [text=] [desc=] [id=search] 元素 // 获取搜索 按钮 前面挨着的 android.widget.EditText [text=] [desc=] [id=search] 元素
val searchEditText = NodeToolText.findPreviousSiblingNode(searchButton, "android.widget.EditText") val searchEditText =
if (searchEditText == null){ NodeToolText.findPreviousSiblingNode(searchButton, "android.widget.EditText")
if (searchEditText == null) {
println("未找到搜索框") println("未找到搜索框")
return return
} }
@@ -206,19 +195,19 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索") searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索")
if(searchButton ==null){ if (searchButton == null) {
println("未找到搜索按钮") println("未找到搜索按钮")
return return
} }
var resultNode = NodeToolText.findNextSiblingNode(searchButton.parent) var resultNode = NodeToolText.findNextSiblingNode(searchButton.parent)
if(resultNode == null){ if (resultNode == null) {
println("未找到下一个节点") println("未找到下一个节点")
return return
} }
var nodeA =NodeToolText.findNodeByText(resultNode,"五常西溪软件园金牛座-A座") var nodeA = NodeToolText.findNodeByText(resultNode, "五常西溪软件园金牛座-A座")
if(nodeA == null){ if (nodeA == null) {
println("未找到五常西溪软件园金牛座-A座") println("未找到五常西溪软件园金牛座-A座")
return return
} }
@@ -226,14 +215,14 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
AccessibilityTool.performClick(nodeA) AccessibilityTool.performClick(nodeA)
Thread.sleep(3000) Thread.sleep(3000)
AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) AccessibilityTool.dismissPopupByClickingMask(getRootInActiveWindow())
// Thread.sleep(2000) // Thread.sleep(2000)
// AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) // AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow())
Thread.sleep(2000) Thread.sleep(2000)
var newAddress = NodeToolText.findNodeByText(getRootInActiveWindow(),"新增") val newAddress = NodeToolText.findNodeByText(getRootInActiveWindow(), "新增")
if(newAddress == null){ if (newAddress == null) {
println("未找到新增") println("未找到新增")
return return
} }
@@ -241,18 +230,18 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
Thread.sleep(3000) Thread.sleep(3000)
performBottomSheetSelection(getRootInActiveWindow(), "区县","余杭区") performBottomSheetSelection(rootNodeCallback, "区县", "余杭区")
Thread.sleep(1000) Thread.sleep(1000)
performBottomSheetSelection(getRootInActiveWindow(), "街道","五常街道") performBottomSheetSelection(rootNodeCallback, "街道", "五常街道")
Thread.sleep(1000) Thread.sleep(1000)
val addressDetail = NodeToolHint.findNodeByHint(getRootInActiveWindow(), "请输入详细地址") val addressDetail = NodeToolHint.findNodeByHint(getRootInActiveWindow(), "请输入详细地址")
if(addressDetail == null){ if (addressDetail == null) {
println("未找到详细地址") println("未找到详细地址")
return return
} }
AccessibilityTool.inputText(addressDetail, "五常西溪软件园金牛座-A座4层101号") AccessibilityTool.inputText(addressDetail, "五常西溪软件园金牛座-A座4层101号")
Thread.sleep(1000) Thread.sleep(1000)
AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) AccessibilityTool.dismissPopupByClickingMask(getRootInActiveWindow())
Thread.sleep(1000) Thread.sleep(1000)
} }
@@ -291,259 +280,22 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService)
return false // 5次尝试后仍未找到 return false // 5次尝试后仍未找到
} }
private fun performBottomSearchSelection(
root: AccessibilityNodeInfo,
fieldName: String,
hintText: String ,
searchWord: String,
){
try {
// 1. 点击触发元素打开搜索对话框
clickToOpenBottomSheet(root, fieldName)
// 2. 等待对话框完全显示
Thread.sleep(1000)
// 3. 获取更新后的根节点
val newRoot = getRootInActiveWindow() ?: root
// 4. 查找搜索输入框
val searchEditText = NodeToolHint.findNodeByHint(newRoot, hintText)
if (searchEditText != null && searchEditText.isEditable) {
// 5. 输入搜索关键词
AccessibilityTool.inputText(searchEditText, searchWord)
println("已在搜索框中输入: $searchWord")
AccessibilityTool.performSearchEnter(searchEditText)
// 6. 等待搜索结果加载
Thread.sleep(5000)
// 7. 选择第一个搜索结果(如果有)
selectFirstSearchResult(newRoot)
} else {
println("未找到搜索输入框或输入框不可编辑")
}
} catch (e: Exception) {
println("搜索选择操作失败: ${e.message}")
}
}
private fun selectFirstSearchResult(root: AccessibilityNodeInfo) {
// 查找可点击的搜索结果项
// 根据UI树搜索结果可能在 "没有更多了..." 之前
val searchResult = findClickableSearchResult(root)
if (searchResult != null && searchResult.isClickable) {
AccessibilityTool.ensureNodeVisible(searchResult)
AccessibilityTool.performClick(searchResult)
println("已选择第一个搜索结果")
// 点击确认按钮
Thread.sleep(500)
val confirmButton = NodeToolText.findNodeByText(root, "确认")
?: NodeToolText.findNodeByText(root, "确定")
if (confirmButton?.isClickable == true) {
AccessibilityTool.performClick(confirmButton)
println("已点击确认按钮")
}
} else {
println("未找到可点击的搜索结果")
}
}
private fun findClickableSearchResult(root: AccessibilityNodeInfo): AccessibilityNodeInfo? {
// 遍历查找可点击的搜索结果项
// 这里可以根据具体的UI结构进行调整
return NodeToolText.findNodeByText(root, "金牛座") // 示例匹配
}
private fun normalizeExpiryDate(dateString: String, defaultValue: String="2090-11-23", maxValue: String="2090-11-23"): String {
// 如果不是日期格式,返回默认值
if (!dateString.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) {
return defaultValue // 默认值
}
// 比较日期是否大于最大值
val inputDate = dateString.replace("-", "").toIntOrNull() ?: 0
val maxDateValue = maxValue.replace("-", "").toIntOrNull() ?: 20901123
return if (inputDate > maxDateValue) {
maxValue // 限制最大值
} else {
dateString // 保持原值
}
}
private fun performBottomTimeSelection(
root: AccessibilityNodeInfo,
fieldName: String,
date: String,
) {
// 校验格式是否为日期格式
if (!date.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) {
throw IllegalArgumentException("Invalid date format. Please provide a date in the format YYYY-MM-DD.")
}
// 解析出年、月、日
val (year, month, day) = date.split("-")
// 1. 点击触发元素打开底部对话框
clickToOpenBottomSheet(root, fieldName)
// 2. 等待对话框完全显示
Thread.sleep(1000)
NodeToolTime.selectDateWithRetry(root, year, month, day,
{ getRootInActiveWindow() })
}
// 点击可点击的触发元素来显示底部选择对话框
fun clickToOpenBottomSheet(root: AccessibilityNodeInfo, triggerText: String) {
val triggerNode = NodeToolText.findNodeByText(root, triggerText)
if (triggerNode != null && triggerNode.isClickable) {
AccessibilityTool.ensureNodeVisible(triggerNode)
AccessibilityTool.performClick(triggerNode)
Thread.sleep(1000) // 等待对话框弹出
}else{
var parent = triggerNode?.parent
while (parent != null) {
if (parent.isClickable) {
AccessibilityTool.ensureNodeVisible(parent)
AccessibilityTool.performClick(parent)
return
}
parent = parent.parent
}
}
}
// 完整流程:点击触发 -> 选择选项 // 完整流程:点击触发 -> 选择选项
fun performBottomSheetSelection(root: AccessibilityNodeInfo?, triggerText: String, optionText: String) {
if(root == null){
return
}
// 1. 点击触发元素打开底部对话框
clickToOpenBottomSheet(root, triggerText)
// 2. 等待对话框完全显示
Thread.sleep(1000)
// 3. 选择目标选项
selectOptionFromBottomSheet(optionText)
// 4. 明确点击确认按钮 dubbo check
val newRoot = uiInspectorService.rootInActiveWindow
clickConfirmButton(newRoot)
Thread.sleep(500) // 等待确认操作完成
}
// 在底部对话框中选择指定选项
fun selectOptionFromBottomSheet(optionText: String, confirm: Boolean = true) {
// 获取更新后的根节点
val newRoot = uiInspectorService.rootInActiveWindow
// 查找并点击选项
val optionNode = NodeToolText.findNodeByText(newRoot, optionText)
if (optionNode != null) {
AccessibilityTool.ensureNodeVisible(optionNode)
if (optionNode.isClickable) {
AccessibilityTool.performClick(optionNode)
println("已选择底部选项: $optionText")
// 根据需要点击确认或取消按钮
if (confirm) {
clickConfirmButton(newRoot)
} else {
clickCancelButton(newRoot)
}
}
} else {
println("未找到底部选项: $optionText")
}
}
// 点击确认按钮
private fun clickConfirmButton(root: AccessibilityNodeInfo): Boolean {
val confirmButton = NodeToolText.findNodeByText(root, "确定")
?: NodeToolText.findNodeByText(root, "确认")
println("查找确认按钮: ${confirmButton != null}")
if (confirmButton != null) {
println("确认按钮属性 - clickable: ${confirmButton.isClickable}, visibleToUser: ${confirmButton.isVisibleToUser}")
if (confirmButton.isClickable) {
AccessibilityTool.ensureNodeVisible(confirmButton)
AccessibilityTool.performClick(confirmButton)
println("已点击确认按钮")
return true
} else {
println("确认按钮不可点击")
}
} else {
println("未找到确认按钮")
// 打印当前界面树以便调试
AccessibilityTool.printViewTree(root, "确认按钮未找到时的界面树")
}
return false
}
// 点击取消按钮
private fun clickCancelButton(root: AccessibilityNodeInfo) {
val cancelButton = NodeToolText.findNodeByText(root, "取消")
if (cancelButton != null && cancelButton.isClickable) {
AccessibilityTool.performClick(cancelButton)
println("已点击取消按钮")
}
}
private fun expandClassificationSection(root: AccessibilityNodeInfo) {
var peopleCountNode = NodeToolText.findNodeByText(root, "请输入人数")
if (peopleCountNode == null) {
println("未找到员工数输入框")
val targetNode = NodeToolText.findNodeByText(root, "分类信息")
val nextSibling = NodeToolText.findNextSiblingNode(targetNode)
if (nextSibling != null && nextSibling.isClickable) {
AccessibilityTool.ensureNodeVisible(nextSibling)
AccessibilityTool.performClick(nextSibling)
Thread.sleep(2000)
println("已点击兄弟节点")
} else {
println("未找到可点击的兄弟节点")
}
}
}
/** /**
* 填写集团名称字段 * 填写集团名称字段
* 根据UI树分析查找hint为"请输入集团名称"的EditText并填入值 * 根据UI树分析查找hint为"请输入集团名称"的EditText并填入值
*/ */
private fun fillGroupNameField(root: AccessibilityNodeInfo, value: String) { private fun fillGroupNameField(root: AccessibilityNodeInfo, value: String) {
fillEditTextByHintText(root,value, "集团名称","请输入集团名称") AccessibilityTool.fillEditTextByHintText(root, value, "集团名称", "请输入集团名称")
} }
private fun fillCompanyNameField(root: AccessibilityNodeInfo, value: String) { private fun fillCompanyNameField(root: AccessibilityNodeInfo, value: String) {
fillEditTextByHintText(root,value, "证件名称","证件名称") AccessibilityTool.fillEditTextByHintText(root, value, "证件名称", "证件名称")
} }
private fun fillEditTextByHintText(root: AccessibilityNodeInfo, value: String, fieldName : String, hintText: String) {
var editTextNode = NodeToolHint.findNodeByHint(root, hintText)
fillEditText(editTextNode,value,fieldName)
}
private fun fillEditText(editText: AccessibilityNodeInfo?, value: String, fieldName : String) {
if (editText == null) {
return
}
if (editText.isEditable) {
AccessibilityTool.inputText(editText, value)
println("已填写$fieldName: $value")
} else {
println("未找到${fieldName}输入框或输入框不可编辑")
}
}
/** /**
* 选择集团状态 * 选择集团状态

View File

@@ -0,0 +1,387 @@
package com.loveerror.bested.handler
import android.content.Intent
import android.os.Handler
import android.os.Looper
import android.view.accessibility.AccessibilityNodeInfo
import com.loveerror.bested.button.DragFloatingButton
import com.loveerror.bested.tool.AccessibilityTool
import com.loveerror.bested.tool.AccessibilityTool.Companion.performBottomSheetSelection
import com.loveerror.bested.tool.CsvTool
import com.loveerror.bested.tool.NodeToolHint
import com.loveerror.bested.tool.NodeToolText
import com.loveerror.bested.tool.RootNodeCallback
import com.loveerror.bested.tool.StorageTool
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
class SearchCompanyForm(private val rootNodeCallback: RootNodeCallback,
private val floatingButton: DragFloatingButton? = null) {
var fields = arrayListOf<FieldName>()
init {
fields.add(FieldName("集团名称", "请输入集团名称", "", FieldType.TEXT))
}
fun getRootInActiveWindow(): AccessibilityNodeInfo?{
return rootNodeCallback.getRootNodeReceived()
}
fun autoFillForm(root: AccessibilityNodeInfo, intent: Intent) {
val companyNames = intent.getStringExtra("companyNames")
if (companyNames.isNullOrEmpty()) {
return
}
// split by \n and trim and ignore empty
val companies = companyNames.split("\n").map { it.trim() }.filter { it.isNotEmpty() }.distinct()
if(companies.isEmpty()){
return
}
val resultsAll = arrayListOf<CompanyInfo>()
// 添加进度跟踪
val totalCompanies = companies.size
println("开始搜索 $totalCompanies 个公司...")
for ((index, company) in companies.withIndex()) {
// 使用ASCII进度条显示进度
val progress = ((index + 1) * 100 / totalCompanies)
updateProgress(progress)
println(" 正在搜索: $company")
println("进度: $progress% ($index+1/$totalCompanies) - 正在搜索: $company")
val fieldMap = mapOf<String, String>(
"集团名称" to company,
)
// 搜索公司
val results = searchCompany(root,fieldMap)
if(results.isEmpty()){
resultsAll.add(CompanyInfo(company,"N", "", "", "",
AddressInfo("", "", "", "", detail = ""),
"", "", ""))
continue
}
// for results to set item.searchName = company
for (item in results) {
item.searchName = company
item.isArchived = "X "+item.manager
}
resultsAll.addAll( results)
// 可选:添加延迟避免请求过于频繁
if (index < companies.size - 1) {
Thread.sleep(500) // 每个搜索之间间隔500ms
}
}
// 显示100%完成进度
updateProgress(100)
println("搜索完成,共找到 ${resultsAll.size} 条记录")
writeResultsToCsv(resultsAll)
}
interface ProgressCallback {
fun onProgressUpdate(current: Int, total: Int, message: String)
}
private fun updateProgress(progress: Int) {
// 更新控制台进度条
printProgressBar(progress)
Handler(Looper.getMainLooper()).postDelayed({
// 更新悬浮按钮进度(如果可用)
floatingButton?.showProgress(true)
floatingButton?.setProgress(progress)
}, 500)
}
private fun printProgressBar(progress: Int, width: Int = 30) {
val completed = (width * progress / 100)
val bar = "[" + "".repeat(completed) + "".repeat(width - completed) + "] $progress%"
print("\r$bar")
if (progress == 100) println() // 完成后换行
}
private fun searchCompany(
root: AccessibilityNodeInfo,
fieldMap: Map<String, String>
): List<CompanyInfo> {
for(field in fields){
if (field.type == FieldType.SELECT){
performBottomSheetSelection(rootNodeCallback, field.fieldName, fieldMap[field.fieldName] ?: field.defaultValue)
}else if(field.type == FieldType.TIME){
// 格式化证件有效期 >2090-11-23 格式化为2090-11-23
val date = AccessibilityTool.normalizeExpiryDate(fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue)
AccessibilityTool.performBottomTimeSelection(rootNodeCallback, field.fieldName,date)
}else if (field.type == FieldType.SEARCH_SELECT){
AccessibilityTool.performBottomSearchSelection(rootNodeCallback, field.fieldName,
field.hintText, fieldMap[field.fieldName] ?: field.defaultValue)
}else{
AccessibilityTool.fillEditTextByHintText(root,fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName,
field.hintText
)
}
}
val searchInput = NodeToolHint.findNodeByHint(getRootInActiveWindow(), "请输入集团名称")
if (searchInput == null) {
println("未找到搜索输入框")
return emptyList()
}
// AccessibilityTool.fillEditTextByHintText(root,"天买", "请输入集团名称",
// "请输入集团名称"
// )
Handler(Looper.getMainLooper()).postDelayed({
AccessibilityTool.performSearchEnter(searchInput)
}, 500)
Thread.sleep(1000)
for(i in 0..20){
val loading = NodeToolText.findNodeByText(getRootInActiveWindow(), "加载中")
if (loading == null) {
break
}
println()
println("等待加载完成")
Thread.sleep(1000)
}
val root = getRootInActiveWindow()
if (root == null) {
println("未找到根节点")
return listOf()
}
val results = parseSearchResults(root)
println(results)
return results
// val searchResult = NodeToolText.findNodeByText(getRootInActiveWindow(), "查询结果")
// 写入CSV文件
}
// 在 SearchCompanyForm 类中修改 writeResultsToCsv 方法
private fun writeResultsToCsv(results: List<CompanyInfo>) {
val csvTool = CsvTool()
// 生成包含时间戳的文件名
val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss_SSS", Locale.getDefault()).format(Date())
val fileName = "company_results_$timeStamp.csv"
// 获取存储路径
val filePath = StorageTool.getStorageFilePath(fileName)
// 定义表头
val headers = listOf("搜索公司名称","建档",
"公司名称", "公司ID", "完整地址", "省份", "城市",
"区域", "街道", "详细地址", "客户类型", "客户状态", "客户经理"
)
// 写入CSV文件
csvTool.writeToFile(
data = results,
filePath = filePath,
headers = headers
) { companyInfo ->
listOf(
companyInfo.searchName,
companyInfo.isArchived,
companyInfo.name,
companyInfo.companyId,
companyInfo.address,
companyInfo.addressInfo.province,
companyInfo.addressInfo.city,
companyInfo.addressInfo.district,
companyInfo.addressInfo.street,
companyInfo.addressInfo.detail,
companyInfo.customerType,
companyInfo.customerStatus,
companyInfo.manager
)
}
println("CSV文件已保存至: $filePath")
}
fun parseSearchResults(root: AccessibilityNodeInfo): List<CompanyInfo> {
val results = ArrayList<CompanyInfo>()
// 查找所有包含公司信息的容器节点
// 根据日志分析,每个结果项都是一个 android.view.View 容器
// 这里需要根据实际UI结构调整查找逻辑
val resultContainers = findAllResultContainers(root)
for (container in resultContainers) {
val (companyName, companyId) = extractCompanyNameAndId(extractChildText(container, 0))
val address = extractChildText(container, 2)
val companyInfo = CompanyInfo(
searchName = "",
isArchived = "X",
name = companyName,
companyId= companyId,
address = address,
addressInfo = parseAddress(address),
customerType = extractChildText(container, 3),
customerStatus = extractChildText(container, 4),
manager = extractMangerName(extractChildText(container, 5)),
)
if(companyInfo.name.isEmpty()){
println()
println("未找到公司名称:"+ companyInfo)
continue
}
results.add(companyInfo)
}
return results
}
private fun extractCompanyNameAndId(text: String): Pair<String, String> {
if (text.isEmpty()) return Pair("", "")
// 使用正则表达式匹配公司名称和ID
val regex = "(.+)\\((\\d+)\\)".toRegex()
val matchResult = regex.find(text)
return if (matchResult != null) {
val companyName = matchResult.groupValues[1].trim()
val companyId = matchResult.groupValues[2].trim()
Pair(companyName, companyId)
} else {
println("未匹配到公司名称和ID: $text")
Pair("", "")
}
}
private fun extractMangerName(text: String): String {
if (text.isEmpty()) return ""
// 使用正则表达式提取"归属客户经理:"后的姓名
val regex = "归属客户经理:(.+)".toRegex()
val matchResult = regex.find(text)
return if (matchResult != null) {
matchResult.groupValues[1].trim()
} else {
println("未匹配到客户经理信息: $text")
""
}
}
data class CompanyInfo(
var searchName: String,
// 是否建档
var isArchived: String,
val name: String,
val companyId: String,
val address: String,
val addressInfo: AddressInfo,
val customerType: String,
val customerStatus: String,
val manager: String
)
private fun parseAddress(address: String): AddressInfo {
if (address.isEmpty()) return AddressInfo("", "", "", "", "")
// 按 "@" 分割地址
val parts = address.split("@")
return when (parts.size) {
5 -> {
// 完整格式: 省@市@区@街道@详细地址
AddressInfo(
province = parts[0],
city = parts[1],
district = parts[2],
street = parts[3],
detail = parts[4]
)
}
in 1..4 -> {
// 不完整格式处理
println("地址格式不完整: $address")
AddressInfo(
province = if (parts.size > 0) parts[0] else "",
city = if (parts.size > 1) parts[1] else "",
district = if (parts.size > 2) parts[2] else "",
street = if (parts.size > 3) parts[3] else "",
detail = ""
)
}
else -> {
// 超过5个部分的情况
println("地址格式异常: $address")
AddressInfo("", "", "", "", "")
}
}
}
data class AddressInfo(
val province: String,
val city: String,
val district: String,
val street: String,
val detail: String
)
// 需要实现的具体解析辅助方法
private fun findAllResultContainers(root: AccessibilityNodeInfo): List<AccessibilityNodeInfo> {
// 实现查找所有结果容器的逻辑
// 可以根据特定的布局特征识别结果项
//
val searchBtn = NodeToolText.findNodeByText(root, "搜索")
val endNode = NodeToolText.findNodeByText(root,"没有更多了")
// if (node == null || node.parent == null) return null
val parent = searchBtn?.parent
if (parent == null) return emptyList()
val childCount = parent.childCount
var found = false
val list = ArrayList<AccessibilityNodeInfo>()
for (i in 0 until childCount) {
val child = parent.getChild(i)
if (found && child != null) {
list.add(child)
}
if (child == searchBtn) {
found = true
}
if(child == endNode){
break
}
}
return list // 没有找到兄弟节点
}
private fun extractChildText(container: AccessibilityNodeInfo, idx: Int): String {
// 移除重复定义的idx变量
if(container.childCount >= idx+1){
val child = container.getChild(idx) // 先获取子节点
return child?.text?.toString() ?: "" // 对子节点进行空值检查
}
return ""
}
}

View File

@@ -8,33 +8,29 @@ import android.os.Build
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.loveerror.bested.MyApplication
import com.loveerror.bested.SelectAccessibility import com.loveerror.bested.SelectAccessibility
import com.loveerror.bested.UIInspectorService
import com.loveerror.bested.button.ActionEvent import com.loveerror.bested.button.ActionEvent
import com.loveerror.bested.button.DragFloatingButton
import com.loveerror.bested.tool.AccessibilityTool import com.loveerror.bested.tool.AccessibilityTool
import com.loveerror.bested.tool.NodeToolText import com.loveerror.bested.tool.NodeToolText
import com.loveerror.bested.tool.RootNodeCallback
class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { class ZjMccmCrm(private val rootNodeCallback: RootNodeCallback) {
private lateinit var selectAccessibility: SelectAccessibility private lateinit var selectAccessibility: SelectAccessibility
private var broadcastReceiver: BroadcastReceiver? = null private var broadcastReceiver: BroadcastReceiver? = null
fun initialize(context: Context) { fun initialize(context: Context) {
val listOfActionEvent = listOf( val listOfActionEvent = ActionEvent.entries.filter { it.enable }
ActionEvent.START_ACTION,
ActionEvent.FILL_ACTION,
// ActionEvent.SET_DATA_SOURCE,
// ActionEvent.HIDE_FLOATING_BUTTON,
ActionEvent.PRINT_CURRENT_PAGE
)
// 注册广播接收器 // 注册广播接收器
broadcastReceiver = object : BroadcastReceiver() { broadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
when (intent.action) { when (intent.action) {
ActionEvent.START_ACTION.event -> { ActionEvent.START_ACTION.event -> {
startJobAsync() startJobAsync(intent)
} }
ActionEvent.FILL_ACTION.event -> { ActionEvent.FILL_ACTION.event -> {
@@ -42,7 +38,26 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
} }
ActionEvent.PRINT_CURRENT_PAGE.event -> { ActionEvent.PRINT_CURRENT_PAGE.event -> {
AccessibilityTool.printViewTree(uiInspectorService.rootInActiveWindow) AccessibilityTool.printViewTree(rootNodeCallback.getRootNodeReceived())
}
ActionEvent.QUERY_COMPANY_REGISTER.event -> {
val stateMachine = ZJMCCMCRMStateMachine(rootNodeCallback)
stateMachine.navigateToSearchCompanyPage(intent)
// if (companyName != null) {
// val queryCompanyRegister = QueryCompanyRegister(uiInspectorService)
// queryCompanyRegister.queryCompanyRegister(companyName)
// }
}
ActionEvent.QUERY_COMPANY_SEARCH_ACTION.event -> {
// 通过全局管理器获取
val floatingButton = MyApplication.getInstance().getFloatingButton(context)
searchCompanyActionAsync(intent,floatingButton)
} }
else -> { else -> {
@@ -52,6 +67,8 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
} }
} }
@@ -60,7 +77,7 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
registerReceiver(filter, context) registerReceiver(filter, context)
} }
selectAccessibility = SelectAccessibility(uiInspectorService) selectAccessibility = SelectAccessibility(rootNodeCallback)
// selectAccessibility.handleSelectPopup(event) // selectAccessibility.handleSelectPopup(event)
@@ -94,14 +111,25 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
if (root == null) { if (root == null) {
return@Thread return@Thread
} }
var normalGroupCreateForm = NormalGroupCreateForm(uiInspectorService) val normalGroupCreateForm = NormalGroupCreateForm(rootNodeCallback)
normalGroupCreateForm.autoFillForm(root) normalGroupCreateForm.autoFillForm(root)
}.start() }.start()
} }
private fun searchCompanyActionAsync(intent: Intent, floatingButton: DragFloatingButton) {
Thread {
val root = rootInActiveWindow()
if (root == null) {
return@Thread
}
val searchCompanyForm = SearchCompanyForm(rootNodeCallback,floatingButton)
searchCompanyForm.autoFillForm(root, intent)
}.start()
}
fun someOptEvent(event: AccessibilityEvent?){ fun someOptEvent(event: AccessibilityEvent?){
// 获取根节点 // 获取根节点
val root = uiInspectorService.rootInActiveWindow val root = rootNodeCallback.getRootNodeReceived()
if (root != null) { if (root != null) {
val editText = AccessibilityTool.findEditTextAfterLabel(root, "集团名称") val editText = AccessibilityTool.findEditTextAfterLabel(root, "集团名称")
@@ -115,10 +143,10 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
} }
} }
private fun startJobAsync() { private fun startJobAsync(intent: Intent) {
val stateMachine = ZJMCCMCRMStateMachine(uiInspectorService) val stateMachine = ZJMCCMCRMStateMachine(rootNodeCallback)
stateMachine.navigateToNormalGroupCreatePage() stateMachine.navigateToNormalGroupCreatePage(intent)
} }
@@ -135,7 +163,7 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
private var lastViewTreeHash: Int = 0 private var lastViewTreeHash: Int = 0
private fun rootInActiveWindow(): AccessibilityNodeInfo? { private fun rootInActiveWindow(): AccessibilityNodeInfo? {
val root = uiInspectorService.rootInActiveWindow val root = rootNodeCallback.getRootNodeReceived()
return root return root
} }
private fun handleContentChange() { private fun handleContentChange() {
@@ -217,6 +245,10 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) {
return NodeToolText.hasNodeWithText(root,"普通建档","集团状态","证件名称") return NodeToolText.hasNodeWithText(root,"普通建档","集团状态","证件名称")
} }
fun isCompanySearchPage(root: AccessibilityNodeInfo): Boolean {
return NodeToolText.hasNodeWithText(root,"全网查询","搜索")
}
} }

View File

@@ -1,17 +1,23 @@
package com.loveerror.bested.handler package com.loveerror.bested.handler
import android.content.Intent
import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo
import com.loveerror.bested.UIInspectorService
import com.loveerror.bested.tool.AccessibilityTool import com.loveerror.bested.tool.AccessibilityTool
import com.loveerror.bested.tool.RootNodeCallback
class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) { class ZJMCCMCRMStateMachine(private val rootNodeCallback: RootNodeCallback) {
private var currentState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN private var currentState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN
private var targetState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN private var targetState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN
private val zjMccmCrm = ZjMccmCrm(uiInspectorService) private val zjMccmCrm = ZjMccmCrm(rootNodeCallback)
fun navigateToNormalGroupCreatePage() { fun navigateToNormalGroupCreatePage(intent: Intent) {
targetState = ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE targetState = ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE
executeWorkflow() executeWorkflow(intent)
}
fun navigateToSearchCompanyPage(intent: Intent) {
targetState = ZJMCCMCRMState.SEARCH_COMPANY_PAGE
executeWorkflow(intent)
} }
// 定义状态转换映射 // 定义状态转换映射
@@ -19,18 +25,20 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.GROUP_ALL_APPS_LIST) to ::handleHomePageToGroupAllAppsList, Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.GROUP_ALL_APPS_LIST) to ::handleHomePageToGroupAllAppsList,
Pair(ZJMCCMCRMState.GROUP_ALL_APPS_LIST, ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE) to ::handleAllAppsListToGroupCreateSelectPage, Pair(ZJMCCMCRMState.GROUP_ALL_APPS_LIST, ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE) to ::handleAllAppsListToGroupCreateSelectPage,
Pair(ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE, ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE) to ::handleGroupCreateSelectPageToNormalGroupCreatePage, Pair(ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE, ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE) to ::handleGroupCreateSelectPageToNormalGroupCreatePage,
Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.SEARCH_COMPANY_PAGE) to ::handleHomePageToSearchCompanyPage // Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.GROUP_ALL_APPS_LIST) to ::handleHomePageToSearchCompanyPage,
) Pair(ZJMCCMCRMState.GROUP_ALL_APPS_LIST, ZJMCCMCRMState.SEARCH_COMPANY_PAGE) to ::handleAllAppsListToSearchCompanyPage,
private fun executeWorkflow() {
)
private fun executeWorkflow(intent : Intent?) {
Thread { Thread {
executeWorkflowInner() executeWorkflowInner(intent)
return@Thread return@Thread
}.start() }.start()
} }
private fun executeWorkflowInner() { private fun executeWorkflowInner(intent: Intent?) {
val root = getRootInActiveWindow() val root = getRootInActiveWindow()
if (root == null) { if (root == null) {
@@ -43,9 +51,14 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
// 更新当前状态 // 更新当前状态
updateState(root) updateState(root)
var count = 100
// && // &&
while (targetState != ZJMCCMCRMState.UNKNOWN && currentState != targetState) { while (targetState != ZJMCCMCRMState.UNKNOWN && currentState != targetState) {
count--
if(count <= 0){
println("无法从当前状态导航到目标状态")
break }
// 检查是否可以导航到目标状态 // 检查是否可以导航到目标状态
if (!canNavigateToTarget()) { if (!canNavigateToTarget()) {
println("无法从当前状态导航到目标状态") println("无法从当前状态导航到目标状态")
@@ -72,8 +85,11 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
// 使用状态映射执行相应动作 // 使用状态映射执行相应动作
val transitionHandler = stateTransitionMap[Pair(currentState, nextState)] val transitionHandler = stateTransitionMap[Pair(currentState, nextState)]
if (transitionHandler != null) { if (transitionHandler != null) {
transitionHandler.invoke(root) transitionHandler.invoke(root,intent)
currentState = nextState currentState = nextState
}else{
println("无法从当前状态导航到目标状态")
break
} }
updateState(root) updateState(root)
@@ -81,7 +97,7 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
} }
private fun getRootInActiveWindow(): AccessibilityNodeInfo? { private fun getRootInActiveWindow(): AccessibilityNodeInfo? {
return uiInspectorService.rootInActiveWindow return rootNodeCallback.getRootNodeReceived()
} }
@@ -93,6 +109,10 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
// 从任何状态都可以导航到 NORMAL_GROUP_CREATE_PAGE // 从任何状态都可以导航到 NORMAL_GROUP_CREATE_PAGE
true true
} }
ZJMCCMCRMState.SEARCH_COMPANY_PAGE -> {
// 从任何状态都可以导航到 SEARCH_COMPANY_PAGE
true
}
else -> false else -> false
} }
} }
@@ -108,6 +128,14 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
else -> ZJMCCMCRMState.UNKNOWN else -> ZJMCCMCRMState.UNKNOWN
} }
} }
ZJMCCMCRMState.SEARCH_COMPANY_PAGE -> {
// 确定到达目标状态的下一个必要步骤
when (currentState) {
ZJMCCMCRMState.HOME_PAGE -> ZJMCCMCRMState.GROUP_ALL_APPS_LIST
ZJMCCMCRMState.GROUP_ALL_APPS_LIST -> ZJMCCMCRMState.SEARCH_COMPANY_PAGE
else -> ZJMCCMCRMState.UNKNOWN
}
}
else -> ZJMCCMCRMState.UNKNOWN else -> ZJMCCMCRMState.UNKNOWN
} }
} }
@@ -119,26 +147,30 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
zjMccmCrm.isGroupAllAppsList(root) -> ZJMCCMCRMState.GROUP_ALL_APPS_LIST zjMccmCrm.isGroupAllAppsList(root) -> ZJMCCMCRMState.GROUP_ALL_APPS_LIST
zjMccmCrm.isGroupCreateSelectPage(root) -> ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE zjMccmCrm.isGroupCreateSelectPage(root) -> ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE
zjMccmCrm.isNormalGroupCreatePage(root) -> ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE zjMccmCrm.isNormalGroupCreatePage(root) -> ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE
zjMccmCrm.isCompanySearchPage(root) -> ZJMCCMCRMState.SEARCH_COMPANY_PAGE
else -> ZJMCCMCRMState.UNKNOWN else -> ZJMCCMCRMState.UNKNOWN
} }
} }
private fun handleHomePageToGroupAllAppsList(root: AccessibilityNodeInfo) { private fun handleHomePageToGroupAllAppsList(root: AccessibilityNodeInfo,intent: Intent?) {
AccessibilityTool.printViewTree(root) AccessibilityTool.printViewTree(root)
AccessibilityTool.clickButtonByText(root, "常用功能", "全部") AccessibilityTool.clickButtonByText(root, "常用功能", "全部")
println("常用功能 全部 clicked") println("常用功能 全部 clicked")
Thread.sleep(1000) Thread.sleep(1000)
} }
private fun handleAllAppsListToGroupCreateSelectPage(root: AccessibilityNodeInfo) { private fun handleAllAppsListToGroupCreateSelectPage(root: AccessibilityNodeInfo,intent: Intent?) {
AccessibilityTool.printViewTree(root) AccessibilityTool.printViewTree(root)
val updatedRoot = uiInspectorService.rootInActiveWindow val updatedRoot = rootNodeCallback.getRootNodeReceived()
if(updatedRoot== null){
return
}
AccessibilityTool.clickButtonByText(updatedRoot, "集团新建") AccessibilityTool.clickButtonByText(updatedRoot, "集团新建")
Thread.sleep(10 * 1000) Thread.sleep(10 * 1000)
} }
private fun handleGroupCreateSelectPageToNormalGroupCreatePage(root: AccessibilityNodeInfo) { private fun handleGroupCreateSelectPageToNormalGroupCreatePage(root: AccessibilityNodeInfo,intent: Intent?) {
AccessibilityTool.printViewTree(root, "before普通建档") AccessibilityTool.printViewTree(root, "before普通建档")
AccessibilityTool.clickButtonByText(root, "普通建档") AccessibilityTool.clickButtonByText(root, "普通建档")
Thread.sleep(15 * 1000) Thread.sleep(15 * 1000)
@@ -146,7 +178,13 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService)
AccessibilityTool.printViewTree(root, "after普通建档") AccessibilityTool.printViewTree(root, "after普通建档")
} }
private fun handleHomePageToSearchCompanyPage(root: AccessibilityNodeInfo) { private fun handleAllAppsListToSearchCompanyPage(root: AccessibilityNodeInfo,intent: Intent?) {
// val companyName = intent?.getStringExtra("textInput")
// if (companyName == null) {
// println("companyName is null")
// return
// }
AccessibilityTool.printViewTree(root) AccessibilityTool.printViewTree(root)
AccessibilityTool.clickButtonByText(root, "全网查询") AccessibilityTool.clickButtonByText(root, "全网查询")
println("全网查询 clicked") println("全网查询 clicked")

View File

@@ -8,6 +8,259 @@ import android.view.accessibility.AccessibilityNodeInfo
class AccessibilityTool { class AccessibilityTool {
companion object { companion object {
fun fillEditTextByHintText(root: AccessibilityNodeInfo, value: String, fieldName : String, hintText: String) {
val editTextNode = NodeToolHint.findNodeByHint(root, hintText)
fillEditText(editTextNode,value,fieldName)
}
fun fillEditText(editText: AccessibilityNodeInfo?, value: String, fieldName : String) {
if (editText == null) {
return
}
if (editText.isEditable) {
AccessibilityTool.inputText(editText, value)
println("已填写$fieldName: $value")
} else {
println("未找到${fieldName}输入框或输入框不可编辑")
}
}
fun performBottomSearchSelection(
rootNodeCallback: RootNodeCallback,
fieldName: String,
hintText: String ,
searchWord: String,
){
try {
// 1. 点击触发元素打开搜索对话框
AccessibilityTool.clickToOpenBottomSheet(rootNodeCallback.getRootNodeReceived(), fieldName)
// 2. 等待对话框完全显示
Thread.sleep(1000)
// 3. 获取更新后的根节点
val newRoot = rootNodeCallback.getRootNodeReceived()
if (newRoot == null){
return
}
// 4. 查找搜索输入框
val searchEditText = NodeToolHint.findNodeByHint(newRoot, hintText)
if (searchEditText != null && searchEditText.isEditable) {
// 5. 输入搜索关键词
AccessibilityTool.inputText(searchEditText, searchWord)
println("已在搜索框中输入: $searchWord")
AccessibilityTool.performSearchEnter(searchEditText)
// 6. 等待搜索结果加载
Thread.sleep(5000)
// 7. 选择第一个搜索结果(如果有)
selectFirstSearchResult(rootNodeCallback)
} else {
println("未找到搜索输入框或输入框不可编辑")
}
} catch (e: Exception) {
println("搜索选择操作失败: ${e.message}")
}
}
private fun findClickableSearchResult(root: AccessibilityNodeInfo): AccessibilityNodeInfo? {
// 遍历查找可点击的搜索结果项
// 这里可以根据具体的UI结构进行调整
return NodeToolText.findNodeByText(root, "金牛座") // 示例匹配
}
private fun selectFirstSearchResult(rootNodeCallback: RootNodeCallback) {
val root = rootNodeCallback.getRootNodeReceived()
if(root == null){
return
}
// 查找可点击的搜索结果项
// 根据UI树搜索结果可能在 "没有更多了..." 之前
val searchResult = findClickableSearchResult(root)
if (searchResult != null && searchResult.isClickable) {
AccessibilityTool.ensureNodeVisible(searchResult)
AccessibilityTool.performClick(searchResult)
println("已选择第一个搜索结果")
// 点击确认按钮
Thread.sleep(500)
val confirmButton = NodeToolText.findNodeByText(root, "确认")
?: NodeToolText.findNodeByText(root, "确定")
if (confirmButton?.isClickable == true) {
AccessibilityTool.performClick(confirmButton)
println("已点击确认按钮")
}
} else {
println("未找到可点击的搜索结果")
}
}
fun performBottomTimeSelection(
rootNodeCallback: RootNodeCallback,
fieldName: String,
date: String,
) {
// 校验格式是否为日期格式
if (!date.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) {
throw IllegalArgumentException("Invalid date format. Please provide a date in the format YYYY-MM-DD.")
}
// 解析出年、月、日
val (year, month, day) = date.split("-")
// 1. 点击触发元素打开底部对话框
clickToOpenBottomSheet(rootNodeCallback.getRootNodeReceived(), fieldName)
// 2. 等待对话框完全显示
Thread.sleep(1000)
NodeToolTime.selectDateWithRetry(rootNodeCallback, year, month, day)
}
fun normalizeExpiryDate(dateString: String, defaultValue: String="2090-11-23", maxValue: String="2090-11-23"): String {
// 如果不是日期格式,返回默认值
if (!dateString.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) {
return defaultValue // 默认值
}
// 比较日期是否大于最大值
val inputDate = dateString.replace("-", "").toIntOrNull() ?: 0
val maxDateValue = maxValue.replace("-", "").toIntOrNull() ?: 20901123
return if (inputDate > maxDateValue) {
maxValue // 限制最大值
} else {
dateString // 保持原值
}
}
fun performBottomSheetSelection(rootNodeCallback: RootNodeCallback, triggerText: String, optionText: String) {
val root = rootNodeCallback.getRootNodeReceived()
if(root == null){
return
}
// 1. 点击触发元素打开底部对话框
clickToOpenBottomSheet(root, triggerText)
// 2. 等待对话框完全显示
Thread.sleep(1000)
// 3. 选择目标选项
selectOptionFromBottomSheet(rootNodeCallback,optionText)
// 4. 明确点击确认按钮 dubbo check
clickConfirmButton(rootNodeCallback)
Thread.sleep(500) // 等待确认操作完成
}
// 点击可点击的触发元素来显示底部选择对话框
fun clickToOpenBottomSheet(root: AccessibilityNodeInfo?, triggerText: String) {
if (root == null) {
return
}
val triggerNode = NodeToolText.findNodeByText(root, triggerText)
if (triggerNode != null && triggerNode.isClickable) {
AccessibilityTool.ensureNodeVisible(triggerNode)
AccessibilityTool.performClick(triggerNode)
Thread.sleep(1000) // 等待对话框弹出
}else{
var parent = triggerNode?.parent
while (parent != null) {
if (parent.isClickable) {
AccessibilityTool.ensureNodeVisible(parent)
AccessibilityTool.performClick(parent)
return
}
parent = parent.parent
}
}
}
// 在底部对话框中选择指定选项
fun selectOptionFromBottomSheet(rootNodeCallback: RootNodeCallback,optionText: String, confirm: Boolean = true) {
// 获取更新后的根节点
val newRoot = rootNodeCallback.getRootNodeReceived()
if (newRoot == null) {
return
}
// 查找并点击选项
val optionNode = NodeToolText.findNodeByText(newRoot, optionText)
if (optionNode != null) {
AccessibilityTool.ensureNodeVisible(optionNode)
if (optionNode.isClickable) {
AccessibilityTool.performClick(optionNode)
println("已选择底部选项: $optionText")
// 根据需要点击确认或取消按钮
if (confirm) {
clickConfirmButton(rootNodeCallback)
} else {
clickCancelButton(newRoot)
}
}
} else {
println("未找到底部选项: $optionText")
}
}
// 点击确认按钮
private fun clickConfirmButton(rootNodeCallback: RootNodeCallback): Boolean {
val root = rootNodeCallback.getRootNodeReceived()
if (root == null) {
return false
}
val confirmButton = NodeToolText.findNodeByText(root, "确定")
?: NodeToolText.findNodeByText(root, "确认")
println("查找确认按钮: ${confirmButton != null}")
if (confirmButton != null) {
println("确认按钮属性 - clickable: ${confirmButton.isClickable}, visibleToUser: ${confirmButton.isVisibleToUser}")
if (confirmButton.isClickable) {
AccessibilityTool.ensureNodeVisible(confirmButton)
AccessibilityTool.performClick(confirmButton)
println("已点击确认按钮")
return true
} else {
println("确认按钮不可点击")
}
} else {
println("未找到确认按钮")
// 打印当前界面树以便调试
AccessibilityTool.printViewTree(root, "确认按钮未找到时的界面树")
}
return false
}
// 点击取消按钮
private fun clickCancelButton(root: AccessibilityNodeInfo) {
val cancelButton = NodeToolText.findNodeByText(root, "取消")
if (cancelButton != null && cancelButton.isClickable) {
AccessibilityTool.performClick(cancelButton)
println("已点击取消按钮")
}
}
private fun expandClassificationSection(root: AccessibilityNodeInfo) {
val peopleCountNode = NodeToolText.findNodeByText(root, "请输入人数")
if (peopleCountNode == null) {
println("未找到员工数输入框")
val targetNode = NodeToolText.findNodeByText(root, "分类信息")
val nextSibling = NodeToolText.findNextSiblingNode(targetNode)
if (nextSibling != null && nextSibling.isClickable) {
AccessibilityTool.ensureNodeVisible(nextSibling)
AccessibilityTool.performClick(nextSibling)
Thread.sleep(2000)
println("已点击兄弟节点")
} else {
println("未找到可点击的兄弟节点")
}
}
}
fun dismissPopupByClickingMask(root: AccessibilityNodeInfo?) { fun dismissPopupByClickingMask(root: AccessibilityNodeInfo?) {
if (root == null) return if (root == null) return
// 方法1: 查找最大的可点击背景视图 // 方法1: 查找最大的可点击背景视图
@@ -113,27 +366,32 @@ class AccessibilityTool {
return false return false
} }
private fun imeEnter(searchEditText: AccessibilityNodeInfo): Boolean{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(searchEditText.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_IME_ENTER.id)){
println("已通过 IME_ENTER 执行搜索")
return true
}
}
return false
}
fun performSearchEnter(searchEditText: AccessibilityNodeInfo) { fun performSearchEnter(searchEditText: AccessibilityNodeInfo) {
try { try {
if(imeEnter(searchEditText)){
println("performSearchEnter 已通过 IME_ENTER 执行搜索")
return
}
// 方法1: 使用 ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE 发送回车 // 方法1: 使用 ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE 发送回车
val arguments = Bundle() val arguments = Bundle()
arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "\n") arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "\n")
if (searchEditText.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments)) { if (searchEditText.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments)) {
println("已发送回车键执行搜索") println("已发送回车键执行搜索")
return return
} else {
println("通过 ACTION_SET_TEXT 发送回车失败")
} }
// 方法2: 如果上述方法失败,尝试使用 IME_ACTION
if (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
searchEditText.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_IME_ENTER.id)
} else {
TODO("VERSION.SDK_INT < R")
}
) {
println("已通过 IME_ENTER 执行搜索")
return
}
} catch (e: Exception) { } catch (e: Exception) {
println("执行搜索操作失败: ${e.message}") println("执行搜索操作失败: ${e.message}")
} }

View File

@@ -0,0 +1,62 @@
package com.loveerror.bested.tool
class CsvTool {
/**
* 将数据列表写入CSV文件
* @param data 数据列表
* @param filePath 文件路径
* @param headers 表头列表
* @param rowMapper 行映射函数将每个对象转换为CSV行数据
*/
fun <T> writeToFile(
data: List<T>,
filePath: String,
headers: List<String>,
rowMapper: (T) -> List<String>
) {
if (data.isEmpty()) return
try {
java.io.FileWriter(filePath).use { writer ->
// 写入表头
writer.write(headers.joinToString(",") + "\n")
// 写入数据行
data.forEach { item ->
val row = rowMapper(item).joinToString(",") { escapeCsvField(it) }
writer.write(row + "\n")
}
}
} catch (e: java.io.IOException) {
e.printStackTrace()
}
}
/**
* CSV字段转义处理
*/
private fun escapeCsvField(field: String): String {
return if (field.contains(",") || field.contains("\"") || field.contains("\n")) {
"\"" + field.replace("\"", "\"\"") + "\""
} else {
field
}
}
}
/**
* val csvTool = CsvTool()
* val persons = listOf(
* Person("张三", 25, "北京"),
* Person("李四", 30, "上海")
* )
*
* // 简单使用
* csvTool.writeToFile(
* data = persons,
* filePath = "persons.csv",
* headers = listOf("姓名", "年龄", "城市")
* ) { person ->
* listOf(person.name, person.age.toString(), person.city)
* }
*/

View File

@@ -4,12 +4,15 @@ import android.view.accessibility.AccessibilityNodeInfo
class NodeToolTime { class NodeToolTime {
companion object { companion object {
fun selectDateWithRetry(root: AccessibilityNodeInfo, year: String, month: String, day: String, getUpdatedRoot: () -> AccessibilityNodeInfo?, maxRetries: Int = 3): Boolean { fun selectDateWithRetry(rootNodeCallback: RootNodeCallback?, year: String, month: String, day: String, maxRetries: Int = 3): Boolean {
if(rootNodeCallback == null)
return false
for (i in 0 until maxRetries) { for (i in 0 until maxRetries) {
try { try {
if (isTimePickerVisible(getUpdatedRoot())) { if (isTimePickerVisible(rootNodeCallback.getRootNodeReceived())) {
selectDate(root, year, month, day,getUpdatedRoot) selectDate(rootNodeCallback, year, month, day)
return true return true
} else { } else {
Thread.sleep(1000) Thread.sleep(1000)
@@ -21,21 +24,23 @@ class NodeToolTime {
} }
return false return false
} }
fun selectDate(root: AccessibilityNodeInfo, year: String, month: String, day: String, getUpdatedRoot: () -> AccessibilityNodeInfo?) { fun selectDate(rootNodeCallback: RootNodeCallback?, year: String, month: String, day: String) {
val root = rootNodeCallback?.getRootNodeReceived() ?: return
try { try {
// 选择年份 // 选择年份
selectYear(root, year) selectYear(root, year)
Thread.sleep(500) // 等待动画完成 Thread.sleep(500) // 等待动画完成
// 重新获取根节点以确保获取到更新后的UI树 // 重新获取根节点以确保获取到更新后的UI树
val updatedRoot = getUpdatedRoot() // 需要实现获取更新后根节点的方法 val updatedRoot = rootNodeCallback.getRootNodeReceived() // 需要实现获取更新后根节点的方法
// 选择月份 // 选择月份
selectMonth(updatedRoot ?: root, month) selectMonth(updatedRoot ?: root, month)
Thread.sleep(500) Thread.sleep(500)
// 再次更新根节点 // 再次更新根节点
val finalRoot = getUpdatedRoot() ?: updatedRoot ?: root val finalRoot = rootNodeCallback.getRootNodeReceived() ?: updatedRoot ?: root
// 选择日期 // 选择日期
selectDay(finalRoot, day) selectDay(finalRoot, day)

View File

@@ -0,0 +1,15 @@
package com.loveerror.bested.tool
import android.view.accessibility.AccessibilityNodeInfo
import com.loveerror.bested.UIInspectorService
fun interface RootNodeCallback {
fun getRootNodeReceived(): AccessibilityNodeInfo
}
class RootNodeCallbackImpl(private var uiInspectorService: UIInspectorService) : RootNodeCallback {
override fun getRootNodeReceived(): AccessibilityNodeInfo {
return uiInspectorService.rootInActiveWindow
}
}

View File

@@ -0,0 +1,29 @@
package com.loveerror.bested.tool
import android.os.Environment
import java.io.File
class StorageTool {
companion object{
fun getStorageFilePath(fileName: String): String {
// 检查外部存储是否可用
val externalStorageState = Environment.getExternalStorageState()
val isExternalStorageAvailable = externalStorageState == Environment.MEDIA_MOUNTED
// 优先使用外部存储SD卡
val directory = if (isExternalStorageAvailable) {
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
} else {
// 使用内部存储的下载目录
File(Environment.getExternalStorageDirectory(), "Download")
}
// 确保目录存在
if (!directory.exists()) {
directory.mkdirs()
}
return File(directory, fileName).absolutePath
}
}
}