13

デバイスをスリープ状態にしたい、または画面をオフにしたい。調査したところ、次のトピックが見つかりました: Android で画面をオフにする

基本的には3つの方法がありますが、私は3つの問題を発見しました:

a) 選択肢 1:

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);

問題: FC を引き起こします。アクセス許可が必要だと読みDEVICE_POWERましたが、通常のアプリには付与できません。

b) 選択肢 2:

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();

問題:これはうまくいきません。どうしてか分かりません。それは私に FC を与えませんが、無害です。

c) 選択肢 3:

WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);

問題:動作させることはできますが、デバイスの電源を入れようとすると、戻りたくない、またはアプリが前面にある場合、ボタンを押した直後に自動的にスリープ状態になるなど、奇妙なことが起こります。これは、通常の解決策というよりも、ヒントまたは回避策のように見えます。

問題なく実行できるデバイスをスリープ状態にするか、画面をオフにする良い方法を誰か教えてもらえますか? このような単純な機能がそれを使用する良い方法を持っていない(または少なくとも十分に文書化されている)ことは私にはまれに思えます

4

2 に答える 2

8

私は自分自身に答えます。デバイスをオフにすることは可能ですが、アプリケーションは API を介してデバイス管理者機能を実装する必要があります:デバイス管理

この API には、locknow()私が望むことを行う関数があります。

いずれにせよ、これは Android ハードウェアとセキュリティ機能を拡張するためのものであり、誰もそのようにデバイスを制御したいとは思わないでしょう。

私が欲しかったのは、簡単なジェスチャーでデバイスをロックできる機能です。独自のデバイス マネージャ クラスを作成したくないので、無料のアプリケーション「lockScreen」がインストールされているかどうかを確認して起動します。それは私がやりたいことをするための近道であり、簡単な方法です。このアプリは、このクラスを実装しているため、デバイス マネージャーとして登録する必要があります。市場から無料で入手することは可能です。

于 2011-12-12T11:05:00.483 に答える