Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android在服务中读取用户输入_Java_Android - Fatal编程技术网

Java android在服务中读取用户输入

Java android在服务中读取用户输入,java,android,Java,Android,我想写一个android应用程序,它将是一个后台服务,可以监听特定的手势或按键,然后触发一个动作。甚至可以用服务做这样的事情吗?如果是的话,有人能给我指引正确的方向吗。我发现搜索上限和下限似乎都能找到答案。这样做(除了在通过向您发送输入进行合作的应用程序之上)将是一个巨大的安全漏洞,android架构设计禁止这种漏洞。要做到这一点,你需要修改平台,让运行的东西访问原始的触摸和按钮输入来完成观看,可能作为驱动程序的一部分 换句话说,你可以在你自己的手机或你生产的设备上很难做到这一点,但这对大多数人

我想写一个android应用程序,它将是一个后台服务,可以监听特定的手势或按键,然后触发一个动作。甚至可以用服务做这样的事情吗?如果是的话,有人能给我指引正确的方向吗。我发现搜索上限和下限似乎都能找到答案。

这样做(除了在通过向您发送输入进行合作的应用程序之上)将是一个巨大的安全漏洞,android架构设计禁止这种漏洞。要做到这一点,你需要修改平台,让运行的东西访问原始的触摸和按钮输入来完成观看,可能作为驱动程序的一部分


换句话说,你可以在你自己的手机或你生产的设备上很难做到这一点,但这对大多数人来说是不可用的。

不难看出他们触摸的地方,但这样触摸只提供了位置,而不是时间,而不是起起伏伏

为您效劳

@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)

一般来说,您不应该能够从服务中捕获手势或按键。看看谷歌手势搜索栏。他们长按搜索按钮打开一个活动,然后捕捉手势。但我不知道他们使用什么意图或信号来获得长时间搜索的通知。窗口管理器不允许您从服务添加视图…此代码引发异常。