#java #android #android-studio #android-service
#java #Android #android-studio #android-сервис
Вопрос:
Я решил создать приложение, которое может автоматически выполнять касания экрана, и я собираюсь использовать его на разных устройствах, которые нуждаются в автоматизации.
Я слышал о «AccessibilityService», что привело меня к использованию Android.Graphics.Path
, GestureDescription
и AccessibilityService
. Я не смог найти способ, с помощью которого я мог бы общаться, AccessibilityService
поэтому я решил создать класс, который наследуется от AccessibilityService
, который привел меня к доступу к DispatchGesture
функции, но на самом деле он не работает, когда я использую эту функцию.
Это мой код и мой файл AndroidManifest:
Код:
public class DispatchGController : AccessibilityService
{
public override void OnAccessibilityEvent(AccessibilityEvent e)
{
}
public override void OnInterrupt()
{
}
public override void OnCreate()
{
base.OnCreate();
Core.WLDel("Service Created!");
}
protected override void OnServiceConnected()
{
base.OnServiceConnected();
this.SetServiceInfo(new AccessibilityServiceInfo() { EventTypes = EventTypes.AllMask, FeedbackType = Android.AccessibilityServices.FeedbackFlags.Spoken, NotificationTimeout = 100 });
}
protected override bool OnGesture(int gestureId)
{
Core.WLDel(gestureId.ToString());
return base.OnGesture(gestureId);
}
public DispatchGController()
{
var res = DispatchGesture(Core.TouchGestures.CreateClick(new Core.ACPointF(10, 200)), Core.MainCallback, null);
}
}
public class TouchGestures
{
const int ClickDuration = 1;
public static GestureDescription CreateClick(ACPointF Point)
{
Path clickPath = new Path();
clickPath.MoveTo(Point.X, Point.Y);
GestureDescription.StrokeDescription clickStroke = new GestureDescription.StrokeDescription(clickPath, 0, ClickDuration);
GestureDescription.Builder builder = new GestureDescription.Builder();
builder.AddStroke(clickStroke);
return builder.Build();
}
}
И это мой файл манифеста:
Манифест
Какие-либо рекомендации по этому поводу?