add: javascript support

This commit is contained in:
hyb1996
2017-01-27 19:45:07 +08:00
parent 307dbe8859
commit c6fd10c7f9
60 changed files with 1352 additions and 1126 deletions

View File

@@ -1,40 +0,0 @@
package com.stardust.view.accessibility;
import android.view.accessibility.AccessibilityNodeInfo;
import java.lang.reflect.Field;
/**
* Created by Stardust on 2017/1/26.
*/
public class AccessibilityNodeInfoReflect {
private final AccessibilityNodeInfo mAccessibilityNodeInfo;
public AccessibilityNodeInfoReflect(AccessibilityNodeInfo accessibilityNodeInfo) {
mAccessibilityNodeInfo = accessibilityNodeInfo;
}
public void getChildNodeIds() {
try {
Field mChildNodeIdsField = AccessibilityNodeInfo.class.getDeclaredField("mChildNodeIds");
mChildNodeIdsField.setAccessible(true);
Object o = mChildNodeIdsField.get(mAccessibilityNodeInfo);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
public long getSourceNodeId() {
try {
Field mSourceNodeIdField = AccessibilityNodeInfo.class.getDeclaredField("mSourceNodeId");
mSourceNodeIdField.setAccessible(true);
return (long) mSourceNodeIdField.get(mSourceNodeIdField);
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
return -1;
}
}

View File

@@ -0,0 +1,39 @@
package com.stardust.view.accessibility;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.text.TextUtils;
/**
* Created by Stardust on 2017/1/26.
*/
public class AccessibilityServiceUtils {
public static void goToPermissionSetting(Context context) {
context.startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS));
}
public static boolean isAccessibilityServiceEnabled(Context context, Class<?> accessibilityService) {
ComponentName expectedComponentName = new ComponentName(context, accessibilityService);
String enabledServicesSetting = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
if (enabledServicesSetting == null)
return false;
TextUtils.SimpleStringSplitter colonSplitter = new TextUtils.SimpleStringSplitter(':');
colonSplitter.setString(enabledServicesSetting);
while (colonSplitter.hasNext()) {
String componentNameString = colonSplitter.next();
ComponentName enabledService = ComponentName.unflattenFromString(componentNameString);
if (enabledService != null && enabledService.equals(expectedComponentName))
return true;
}
return false;
}
}