Android服务的回拨按钮(系统范围)

Android服务的回拨按钮(系统范围),android,android-intent,Android,Android Intent,我需要将蜂巢“后退”按钮重新映射到我的应用程序(服务)中的一个按钮,但经过数小时的搜索,我仍然一无所获。功能必须在系统层面上,如按钮Viour中的后退按钮(见市场) 大多数模拟后退按钮的解决方案都基于调用finish()。我不确定它是否适用于我的情况,因为我必须从前台找到的任何活动中调用finish()。我确实用代码获得了前台应用程序 ActivityManager am = (ActivityManager) getContext().getSystemService(getContext()

我需要将蜂巢“后退”按钮重新映射到我的应用程序(服务)中的一个按钮,但经过数小时的搜索,我仍然一无所获。功能必须在系统层面上,如按钮Viour中的后退按钮(见市场)

大多数模拟后退按钮的解决方案都基于调用finish()。我不确定它是否适用于我的情况,因为我必须从前台找到的任何活动中调用finish()。我确实用代码获得了前台应用程序

ActivityManager am = (ActivityManager) getContext().getSystemService(getContext().ACTIVITY_SERVICE);
        List<RunningTaskInfo> T = am.getRunningTasks(5);
        System.out.println("top activity: "+T.get(0).topActivity);
ActivityManager am=(ActivityManager)getContext().getSystemService(getContext().ACTIVITY_服务);
列表T=am.getRunningTasks(5);
System.out.println(“顶级活动:+T.get(0.topActivity));
但是我不确定我应该如何发送一个结束()的意图

我也尝试了这里发布的解决方案,但我无法绕过IWindowManager(它在蜂巢中被删除了吗?)。然而,这个解决方案看起来很有趣,因为有了它,我可以随时随地将KeyEvent.KEYCODE_发回

请让我知道在系统范围内实现此功能的最佳方式,即从服务而不是我的特定应用程序

干杯


PS:该应用程序是在我自己的根平板电脑上运行的,而不是分发给其他人。

你找不到答案的原因是,这是一种非常粗糙的方式,它表明你的应用程序的设计有很大的缺陷。你不应该“呼叫后退按钮”,这根本没有任何意义。事实上,你根本不应该改变后退按钮的行为,当你这么做的时候,用户会非常不高兴。如果您有服务,并且需要向活动发送消息,请使用messenger。但是你当然不应该(当然也不能)改变你服务中其他应用的行为。(这表明系统中存在严重的安全漏洞,并会让你劫持他人的用户界面,做出潜在的危险行为,或者至少是令人讨厌的事情。)

你找不到答案的原因是,这是一种非常粗糙的做事方式,它表明你的应用程序的设计存在严重缺陷。你不应该“呼叫后退按钮”,这根本没有任何意义。事实上,你根本不应该改变后退按钮的行为,当你这么做的时候,用户会非常不高兴。如果您有服务,并且需要向活动发送消息,请使用messenger。但是你当然不应该(当然也不能)改变你服务中其他应用的行为。(这表明系统中存在严重的安全漏洞,并会让您劫持他人的UI,进行潜在危险或至少令人讨厌的事情。)

当您想要模拟“后退”按钮时,活动是否会打开?如果是这样,您可以在活动中设置一个计时器,每隔5秒左右检查一次退出文件。然后,在您的服务中,当您想要模拟背压时,创建退出文件。当活动看到已创建退出文件时,删除该文件并调用finish()


然而,正如其他人所建议的那样,以这种方式做事意味着你可能需要重新思考应用程序的设计。您到底想实现什么?

当您想要模拟“后退”按钮时,活动是否会打开?如果是这样,您可以在活动中设置一个计时器,每隔5秒左右检查一次退出文件。然后,在您的服务中,当您想要模拟背压时,创建退出文件。当活动看到已创建退出文件时,删除该文件并调用finish()


然而,正如其他人所建议的那样,以这种方式做事意味着你可能需要重新思考应用程序的设计。你到底想达到什么目的?

当问题明确表明这不会用于市场时,为什么人们会向帖子发送关于设计和良好实践的建议?! 在某些应用程序中,有时需要更换android导航栏,即使只是为了自己的乐趣(或程序员的满意度)

从java运行时exec尝试 输入键事件4 4意味着回来


按钮救世主最有可能使用隐藏的api,我曾经遇到过,但现在不记得了。当我找到它时,我会发回。

当问题明确表明这不会用于市场时,为什么人们会用关于设计和良好实践的建议来垃圾邮件呢?! 在某些应用程序中,有时需要更换android导航栏,即使只是为了自己的乐趣(或程序员的满意度)

从java运行时exec尝试 输入键事件4 4意味着回来


按钮救世主最有可能使用隐藏的api,我曾经遇到过,但现在不记得了。当我找到它时,我会发回。

你为什么想要它?听起来不是很友好。嗨,我只需要屏幕另一部分的“后退”按钮。我有一个根设备,这是个人应用程序,所以不必担心分发和兼容性。看看辅助功能工具是如何创建的。你为什么要这样做?听起来不是很友好。嗨,我只需要屏幕另一部分的“后退”按钮。我有一个根设备,这是个人应用程序,所以不必担心分发和兼容性。看看辅助工具是如何创建的。您好,ButtonSaviour做到了(从市场上查看),所以它应该是可能的。我讨厌蜂窝系统栏,我想做一个半透明的“后退”按钮,我可以把它放在屏幕的一角。你知道他们是怎么做的吗?不要改变系统中的行为。不要说“这个应用程序以一种糟糕的方式打破了Android的设计模式,我如何才能破解系统来做到这一点”,这是一个可怕的借口,也是设计你的应用程序的可怕方式。您不能通过应用程序更改系统的行为。