問題タブ [android-wake-lock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4433 参照

android - NotificationManager.notify() が SecurityException で失敗する

Android 2.2 で許可がNotificationManager.notify()必要になるのはいつですか?WAKE_LOCK

あるユーザーから次のスタック トレースを受け取りました。

更新Scala でコードを呼び出す:

0 投票する
5 に答える
58222 参照

android - Androidで画面をオフにする

特定のアクションが発生した後、ディスプレイのオンとオフを切り替えようとしています(今のところ画面をオフにすることを心配しましょう)。ウェイクロックから私が理解していることから、これは私が持っているものです:

stackoverflowやその他の場所に関する他の投稿を読んだとき、PARTIAL_WAKE_LOCKによって画面がオフになると言われているようです。しかし、SDKを読むと、画面をオフにすることしかできないと書かれています。これは正しくないと思います。

0 投票する
2 に答える
3527 参照

android - スリープモードでwifiネットワーク信号を確認します

私の目的は、Wi-Fiネットワークの変更をスキャンできるようにすることです(主に、使用可能なネットワークを確認するため)。私が受信者を登録することによってそれをしていることを正しく知っています:

私のはどこWifiReceiverですかBroadcastReceiver

問題は、電話がオンになっているときにのみ機能することです。スリープモードになると(電源ボタンを押すか、しばらくすると)、受信機は受信を停止します。メインクラスのonCreateでウェイクロックを取得し、onDestroyでリリースしました(これは部分的なウェイクロックです)。さらに、私はこれを試しました:

Wi-Fiがスリープ状態にならないようにします。残念ながら、それは役に立ちませんでした。

電話がスリープ状態の場合でも、ネットワークの変更をスキャンする可能性はありますか?どのネットワークが範囲内にあるかを(SSIDで)確認できるようにしたい。多分私は別のアクションを使用する必要がありますか?

あなたの助けに感謝。

0 投票する
1 に答える
1042 参照

android - PowerManager.goToSleep が呼び出されると、Android サービスはどうなりますか?

PowerManager.goToSleep() が呼び出されたときに Android サービスに何が起こるかを理解しようとしています。

デバイスが x 時間スリープしているとします。デバイスがスリープ状態から復帰すると、サービスに変更を通知するために使用される onPause() や onRestart() などの LifeCycle メソッドがサービス内にありません。

ドキュメントによると、すべての WakeLock がオーバーライドされていることはわかっていますが、それはサービスが破棄され、再び開始されないことを意味しますか?

http://developer.android.com/reference/android/os/PowerManager.html#goToSleep%28long%29

0 投票する
3 に答える
1555 参照

android - Android:ウェイクロック:アプリケーションでロックが解除されますか?

私はウェイクロックを使わなければなりません(そうです、明白な理由で使うべきではありませんが、私はそれをするために支払われているので、選択の余地はありません笑)

私の質問は非常に単純です。アプリをonPauseまたはonStopのままにすると、アプリのウェイクロックは自動的に解放されますか?

ユーザーがアプリを閉じても、なんらかの奇妙な理由でウェイクロックがまだオンになっているのを避けたいと思います。

現在のシステムで問題が発生しており、アプリがメッセージハンドラーを介してリリースウェイクロックを呼び出しています(別のスレッドからのものであるため)。これは「遅すぎる」ために発生し、アプリにはもう存在しないためにクラッシュします。ウェイクロックへの参照。

私はあまり明確ではないかもしれませんが、ここでの主な質問は:

アプリのライフサイクル外で電話に影響を与えるアプリのウェイクロックについて心配する必要がありますか?

乾杯

ジェイソン

0 投票する
3 に答える
5361 参照

android - Android Bluetooth と WakeLock の関係

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

0 投票する
1 に答える
540 参照

android - WakeLock-related Mandelbug: does WakeLock.acquire() always succeed?

The Problem

I've been developing for Android for quite some time now. One of the programs I've developed makes heavy use of WakeLocks. It usually perfectly (often for days or weeks at a time, a requirement of the program), but very rarely I notice peculiar behaviour in this code:

Where hasWakeLock() simply returns the result of (wakeLock != null && wakeLock.isHeld()) and wakeLockManager.newPartialWakeLock(DEBUG_TAG) encapsulates the standard "get the PowerManager and then return a wake lock" code. For the purposes of testing, the assert statements are JUnit assert methods so I think we can assume that they are correct.

The problem with the code is this: the final assertion - assertTrue(hasWakeLock()) - seems to fail every few weeks with very little explanation. It means that I have three possible issues here: (1) the wake lock is never retrieved at all from the PowerManager (2) that I have a concurrency issue that on rare occasions takes effect just before the postcondition but after the call to acquire(), or that (3) acquire() is sometimes faulty.

Investigation of the Problem

As stated above, I have three potential issues that may be occurring that I am investigating / have investigated:

Hypothesis 1: Wake Lock not returned:

Were this the case then I would see a null pointer exception. It can't be that.

Hypothesis 2: I have a concurrency issue:

A just-conducted formal verification proof of all places involved in acquiring and releasing wakeLock strongly leads me to believe that this is not the case. In the case that my proof is faulty then I may have a concurrency issue, but it is then truly insidious and difficult to find.

Hypothesis 3: WakeLock.acquire() is faulty, and despite what the documentation says it sometimes can fail to acquire the lock:

I dislike this hypothesis because with all of the Android users our there someone aside from myself must have noticed this by now and it is almost always the developer's code, not the library or OS code, that is faulty. Then again, stranger things have happened and this might be a genuine Android bug, albeit a rarely exhibited one. If this hypothesis is true then acquire() is simply not acquiring the wake lock and this would explain the behaviour I'm seeing.

So StackOverflow, what could be causing this problem? What do you think is wrong? Am I missing something obvious, or could this be a genuine problem with Android's wake locks?

0 投票する
1 に答える
509 参照

android - Android、アプリの穴に入っているときにWake Lockがアクティブになりますか?

アプリケーションにいくつかのアクティビティがあります。メイン アクティビティでは、ウェイク ロックを定義しました。

onPause()メソッドでリリースしました。私の質問は、アプリケーション全体でアクティブですか? または、私が持っている各活動でそれをコピーして貼り付ける必要がありますか?

ありがとう

0 投票する
2 に答える
356 参照

android - Android - 画面がタイムアウトしたときにファイルに書き込むにはどうすればよいですか

独自のログ ファイルを保持する (業界固有の) アプリケーションを作成しています (Android ログを使用する必要があることはわかっていますが、ビジネス目的のために、このログ ファイルを非常に特殊な形式で保持する必要があります)。このアプリはマス マーケット向けではありません。 、そしてユーザーは、アプリが被るバッテリーの消耗をよく知っています.

まず、アプリには常にサーバーへの接続を維持する必要があるサービスがあります。これは、画面のタイムアウト後に期待どおりに機能する部分的なウェイクロックを使用することで実現しました。

しかし、私たちの問題は、スクリーンタイムが切れると、ロガーモジュールが外部ストレージにあるファイルへの書き込みを停止し、スクリーンが再び開始されると、ロガーが短時間後に再開することです.

アプリがシステムによって強制終了されていないことはわかっています (フォアグラウンド サービスのため)。(再起動すると別の画面に戻ります)

システムに強制的にファイルへのストリームを開いたままにする別の方法はありますか? 私たちが保持している部分的なウェイクロックがこれをまだ行っていないのはなぜですか?

いつでもファイルに書き込める方法が必要です。

0 投票する
1 に答える
1604 参照

java - Android - 音声で電話のロックを解除する

デバイスが PowerManager.WakeLock モードであっても、音声コマンドで電話のロックを解除することは可能ですか?サービスをバックグラウンド プロセスとして使用することを考えましたが、電話デバイスはロックされたときに反応できますか?何かアイデアはありますか?

ps.明確にするために、私はJava Android SDKを使用しています