1

私のアプリケーションは、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

4

0 に答える 0