2012-03-30 116 views
2

我正在开发一个应用程序,在连接失败时重新启动手机。由另一个应用程序打开的关闭GPRS连接

在这一步之前,我们希望通过Connection Manager关闭所有打开的连接。我知道我们可以使用ConnMgrReleaseConnection来释放一个连接,但是如果连接是通过另一个应用程序建立的,是否可以获得Connection句柄?

如果连接管理器未能关闭连接,我们可以执行RASHangup,但是我们首先想通过ConnectionManager尝试它。

回答

1

没有,没有办法通过连接amanger来做到这一点。手柄ConnMgrReleaseConnection想要的是从拨打电话ConnMgrEstablishConnection返回的手机。据推测,“其他”应用程序调用了这个并具有句柄,但即使该应用程序可以给你提供句柄,它仍然会在你自己的进程空间中无效。

总的来说,这样做会是一种糟糕的形式,无论如何我都会这样做,因为我认为打开连接的应用程序会希望它一旦请求它就会一直打开。强行关闭它(即使通过RAS),如果没有该应用程序知道可能会导致意外的行为。如果你只是要重新启动手机,对你来说可能不是一个大问题,但是如果你对这个其他应用程序有任何控制权,我会添加处理,你可以告诉它关闭它的连接。

+0

我认为是这种情况,但希望事实并非如此。另一个应用程序是我们的,但这是一个独立的应用程序来处理一个非常罕见的问题。我们实际上并未重启设备,而是打开和关闭无线电。 – Fishcake 2012-03-30 16:09:29

+0

然后我会实现一个名为event的系统。让其他应用程序定期检查事件(在计时器或工作线程中),并在断言事件时让它释放连接。 – ctacke 2012-03-30 17:05:40

+0

您可以使用消息窗口通知其他应用程序关闭连接。 – 2012-03-30 21:21:19

相关问题