Java android在服务中读取用户输入
我想写一个android应用程序,它将是一个后台服务,可以监听特定的手势或按键,然后触发一个动作。甚至可以用服务做这样的事情吗?如果是的话,有人能给我指引正确的方向吗。我发现搜索上限和下限似乎都能找到答案。这样做(除了在通过向您发送输入进行合作的应用程序之上)将是一个巨大的安全漏洞,android架构设计禁止这种漏洞。要做到这一点,你需要修改平台,让运行的东西访问原始的触摸和按钮输入来完成观看,可能作为驱动程序的一部分Java android在服务中读取用户输入,java,android,Java,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)
一般来说,您不应该能够从服务中捕获手势或按键。看看谷歌手势搜索栏。他们长按搜索按钮打开一个活动,然后捕捉手势。但我不知道他们使用什么意图或信号来获得长时间搜索的通知。窗口管理器不允许您从服务添加视图…此代码引发异常。