2012-03-30 17 views
2

私は接続を失った場合に電話を再起動するアプリケーションを開発しています。他のアプリケーションで開かれたGPRS接続を閉じる

この手順を実行する前に、Connection Managerで開いている接続をすべて終了します。 ConnMgrReleaseConnectionを使用して接続を解放することはできますが、別のアプリケーションで接続が確立されている場合は接続ハンドルを取得できますか?

接続マネージャが接続を閉じることができない場合は、RASHangupを実行できますが、まずConnectionManagerを使用して接続を試みます。

答えて

1

いいえ、接続amanger経由で行う方法はありません。ハンドルConnMgrReleaseConnectionは、ConnMgrEstablishConnectionへの呼び出しから返されたものです。おそらく "他の"アプリケーションはこれを呼び出してハンドルを持っていますが、たとえそのアプリケーションがハンドルを与えることができたとしても、とにかく自分のプロセス空間では無効になります。

一般的に、私は接続を開いたアプリがそれを要求したらいつでも開いていると思っていると思うので、このようなことをするのは悪いフォームです。そのアプリケーションを知らずに強制的に(RASを介して)閉じると予期しない動作につながる可能性があります。たぶんあなたが電話を再起動しようとしている場合はおそらく大きな問題ではありませんが、あなたは他のアプリを何らかの制御を持っている場合、私はそれが接続を閉じるためにそれを伝えることができる処理を追加したいと思います。

+0

私はそれが事実だと思ったが、そうではないと思った。他のアプリケーションは私たちのものですが、これは非常にめったに発生しない問題を処理するスタンドアロンアプリケーションです。実際にはデバイスを再起動するのではなく、ラジオをオンまたはオフにします。 – Fishcake

+0

私はイベントという名前のシステムを実装したいと思います。他のアプリが定期的に(タイマーやワーカースレッドのいずれかで)イベントをチェックし、イベントをアサートしたときに接続を解放するようにします。 – ctacke

+0

メッセージウィンドウを使用して、他のアプリケーションに接続を終了するよう通知することができます。 –

関連する問題