私のアプリケーションは、SMS をメール アドレスに転送します。大きな問題の 1 つは、その日の最初のメッセージです。デバイス (最大バッテリー節約モードに設定された Attrix) はディープ スリープ状態です。SMS は正常に受信されますが、電話を手動で起動するまでネットワーク/データ接続はありません。これは非常に洗練されていません。
Android にネットワークを目覚めさせるように要求/強制/だまし、接続を許可したいと思います。私は CONNECTIVITY_CHANGE リスナーを持っているので、アプリはこれがいつ非同期で発生したかを検出できます。
現在、HttpClient.execute() は「http://xxx.yyy.comへの接続が拒否されました」と言っています。これは、SMS を受信した直後に呼び出されます。これは、「false」と表示される isConnected() チェックなしで試行されます。リクエストがネットワークの起動を引き起こすことを望んでいました。
私も試しました(注-この方法の経験はありません)
connectionsManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "enableHIPRI");
しかし、コードはちょうど...止まります...そこで。エラー、例外、ログはなく、停止するだけです。戻り値を確認することさえできません。
私はウェイクロックを試していません。なぜなら、それらは CPU (CPU は OK のようです) とスクリーン (気にしない) を目覚めさせるためのもののようです。
私のアプリの以前のバージョンでは、別のルートに進みました。メッセージが正常に送信されるまで、5 分ごとに試行する TimerTask があります (つまり、Javax Mail transport.send() は MessagingException をスローしません)。現在のネットワーク状態に関する情報は完全に無視されます。これは非常に確実に機能するようです。しかし、これは暗闇の中でダーツを投げていることであり、改善できると確信しています.
ありがとう!
PVS