22

バックグラウンドで実行され、Bluetooth アクセサリのサポートを有効にする Android アプリケーションに取り組んでいます。Bluetoothデバイスが電話へのソケットを開こうとするのをバックグラウンドで常にリッスンしたいと思います。私の質問は、部分的なウェイクロックを常に維持せずにこれを達成できるかどうかです。それは明らかにバッテリーに深刻な影響を与えるためです。だから私が疑問に思っているのは、Bluetoothが電話の眠りにどのような影響を与えるかということです. 開いている Bluetooth ソケットがある場合、電話は起きたままになりますか? デバイスが接続を試みた場合、Bluetooth チップは Android を自動的に起動しますか? これらの質問に答えるためにいくつかのテストを試みましたが、wake lock で何が起こっているのかを特定することは困難です。さらに、私はしません

4

3 に答える 3

0

マシュマロベース以上をターゲットとするデバイス向けに開発している場合は、そのような条件を処理するための DOZE モードがあります。その後、これらのことについて心配する必要はありません。適切なメカニズムで WAKE_LOCK を処理できます。

于 2017-04-26T08:20:04.037 に答える
-3

Bluetooth ソケットが開いている場合、携帯電話は起動したままではなく、デバイスが接続しようとしても、Bluetooth チップは Android を起動しません。通常、開いているポートで接続を受け入れるためにバックグラウンド スレッドが実行されており、デバイスが接続を試みるとすぐに、このスレッドが接続を読み取り、着信デバイスから何らかの認証を取得します (新しい着信接続を受け入れるための適切なセキュリティ プロトコル)、および着信接続が認証されると、このスレッドとの後続の情報交換を処理するために、独立したスレッドが作成/通知されます。

そのため、バックグラウンド プロセスは電力とバッテリーの消耗を消費し、Android を部分的に起動状態に保つ役割も果たします (部分的にはバックグラウンド プロセスであり、着信接続をチェックする頻度をいつでも制御できます)。通常、このバックグラウンド プロセスは常に実行されるわけではなく、Android で Bluetooth がオンになっている場合にのみ実行されます。そのため、Android で Bluetooth がオンになっている場合にのみ実行するスレッドを作成することもできます。それ以外の場合はスリープする必要があります。

于 2013-01-28T20:01:34.000 に答える