110,566
社区成员
发帖
与我相关
我的任务
分享
[Service(
Label = nameof(InitAccessibilityService),
Permission = "android.permission.BIND_ACCESSIBILITY_SERVICE"
)]
[IntentFilter(new string[] { "android.accessibilityservice.AccessibilityService" })]
public class InitAccessibilityService : AccessibilityService
{
public static InitAccessibilityService mService { get; private set; }
protected override void OnServiceConnected()
{
base.OnServiceConnected();
var info = new InitAccessibilityServiceInfo
{
Flags = AccessibilityServiceFlags.Default,
EventTypes = EventTypes.AllMask,
FeedbackType = FeedbackFlags.AllMask,
NotificationTimeout = 100
};
SetServiceInfo(info);
mService = this;
}
public override void OnAccessibilityEvent(AccessibilityEvent e)
{
var root = e.Source;
if(root == null)
{
//这里为什么会获取到空值啊
}
}
}
//直接获取当前页面是空的
AccessibilityNodeInfo root = InitAccessibilityService.mService.RootInActiveWindow;
//获取Windows的列表,Count()==0,也没有东西
var rootLists = InitAccessibilityService.mService.Windows.ToList();
var roots = rootLists.Select(s => s.Root).ToList();
[MetaData("android.accessibilityservice", Resource = "@xml/accessibility_service_config")]
通过重写AccessibilityServiceInfo,我是没办法了。
但是通过xml配置,还是可以成功开启canRetrieveWindowContent,获取到页面节点。