我想写一个Android应用程序,它将是一个后台服务,可以监听特定的手势或按键,然后触发一个动作。甚至可以用服务做这样的事情吗?如果是这样,有人可以指导我正确的方向。我有搜索高低可以似乎找到答案。
答案 0 :(得分:1)
不难看出他们触摸的地方,但这样的触摸只提供位置,而不是时间,而不是起伏。
在您的服务中
@Override
public void onDestroy() {
super.onDestroy();
if (layout != null) {
((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(layout);
layout = null;
}
}
@Override
public void onCreate() {
super.onCreate();
layout = new RelativeLayout(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
params.setTitle("test");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(layout, params);
}
对于你的触摸处理程序,它必须是
public boolean gestureHandler(MotionEvent event, boolean eat) {
if(event.getAction() == MotionEvent.ACTION_OUTSIDE)
答案 1 :(得分:0)
执行此操作(除了通过向您发送输入进行合作的应用程序之外)将是Android架构旨在禁止的那种巨大的安全漏洞。要做到这一点,你需要修改平台,并通过访问原始触摸和按钮输入来运行观察,可能作为驱动程序的一部分。
换句话说,您可能很难在自己的root手机或制造的设备上进行此操作,但它对大多数人来说都无法使用。