0

在有人告诉我这无法做到之前,我已经对为什么进程不能相互干扰以及在什么条件下这是可能的进行了大量研究。我们的问题是设备之间的蓝牙支持不一致,某些设备上的解决方案是停止现有的蓝牙服务并运行一个单独的应用程序(BlueFTP),然后该应用程序能够侦听释放的端口并管理 OPP 通信。

  • android.permission.RESTART_PACKAGES权限加号ActivityManager.restartPackage()不起作用,因为它只是重新启动有问题的包。
  • Process.killProcess由于明显的原因不起作用(阅读 API)
  • android.permission.KILL_BACKGROUND_PROCESSES权限加号ActivityManager.killBackgroundProcesses()被忽略,因为(我相信根据 API)蓝牙应用程序不被视为后台应用程序,因此没有资格被杀死。

目前,如果客户在使用特定手机时遇到问题,我们会让他们转到正在运行的应用程序并在刷新 BlueFTP 之前强制停止有问题的 OPP 服务,以便端口侦听器启动。违规服务有多个可能的名称,具体取决于手机和 Android 版本。

所以。该过程目前是手动的,但我希望有一种方法可以通过镜像设置中的强制停止选项的代码来实现。更轻松的选择可能是协助打开该服务的设置,而不是需要向客户解释如何到达那里,但如果有可用的完整解决方案,我更喜欢完整的解决方案。请注意,虽然我们的开发手机具有 root 访问权限,但客户端手机不会。

4

1 回答 1

1

您可以在其他应用程序中为您的服务使用隐式意图来关闭它们。它也不需要额外的权限,除非您的服务对其访问强制执行权限。

哦,我忽略了它是第三方应用程序的事实。在那种情况下,你真的做不了什么。对不起。

于 2012-04-17T04:37:54.600 回答