diff --git a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
index a74c8373..f688682d 100644
--- a/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
+++ b/app/src/main/java/com/stardust/scriptdroid/external/floatingwindow/menu/content/MainMenuNavigatorContent.java
@@ -13,6 +13,7 @@ import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector.LayoutInspector;
+import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.main.MainActivity_;
import com.stardust.util.ClipboardUtil;
import com.stardust.util.MessageEvent;
@@ -87,6 +88,12 @@ public class MainMenuNavigatorContent implements NavigatorContent {
HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
}
+ @OnClick(R.id.open_accessibility_settings)
+ void openAccessibilitySettings() {
+ AccessibilityServiceTool.enableAccessibilityService();
+ HoverMenuService.postIntent(new Intent(HoverMenuService.ACTION_COLLAPSE_MENU));
+ }
+
@NonNull
@Override
public View getView() {
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
index 883f1716..967091e4 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java
@@ -50,7 +50,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
activity.getSupportFragmentManager().beginTransaction().replace(viewId, fragment).commit();
}
- @ViewById(R.id.sw_auto_operate_service)
+ @ViewById(R.id.sw_accessibility_service)
SwitchCompat mAccessibilityServiceSwitch;
@ViewById(R.id.sw_floating_window)
SwitchCompat mFloatingWindowSwitch;
@@ -108,7 +108,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
mAccessibilityServiceSwitch.toggle();
}
- @CheckedChange(R.id.sw_auto_operate_service)
+ @CheckedChange(R.id.sw_accessibility_service)
void setAutoOperateServiceEnable(CompoundButton button, boolean enable) {
boolean isAccessibilityServiceEnabled = AccessibilityService.isEnabled(App.getApp());
if (enable && !isAccessibilityServiceEnabled) {
diff --git a/app/src/main/res/layout/floating_window_main_menu.xml b/app/src/main/res/layout/floating_window_main_menu.xml
index 4925c8a6..652a849b 100644
--- a/app/src/main/res/layout/floating_window_main_menu.xml
+++ b/app/src/main/res/layout/floating_window_main_menu.xml
@@ -70,6 +70,21 @@
android:layout_height="1dp"
android:background="#c4c4c4"/>
+
+
+
+
0为无限循环
延迟多少秒后开始循环
格式错误
+ 打开无障碍服务
- 无
diff --git a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java
index dd344b9f..8b303bb0 100644
--- a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java
+++ b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java
@@ -59,10 +59,13 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
@Override
public void onAccessibilityEvent(final AccessibilityEvent event) {
Log.v(TAG, "onAccessibilityEvent: " + event);
- if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED
- || event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER
- || event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
- mRootInActiveWindow = super.getRootInActiveWindow();
+ try {
+ AccessibilityNodeInfo root = super.getRootInActiveWindow();
+ Log.v(TAG, "getRootInActiveWindow: " + root);
+ if (root != null)
+ mRootInActiveWindow = root;
+ } catch (Exception ignored) {
+
}
if (!containsAllEventTypes && !eventTypes.contains(event.getEventType()))
return;