2012-03-30 101 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

相關問題