4
私のアプリは、いくつかの操作にTelephonyManager.ACTION_PHONE_STATE_CHANGED
を使用しています。しかし、私は、ユーザーが存在していたとき(画面がオン)に電話が鳴っていて、ユーザーがいないとき(画面がオフだったとき)に別のアクションが必要です。私はonReceive
のちょうど始めにisScreenOn()
メソッドを試しました(スクリーンがオフで、着信があったので、しばらく画面が消えていたからです)。運がない - 時にはうまくいく、時にはうまくいかない。放送はどのようにコールが到着したときに電話が眠っていた場合、本当に判断するために自分のコードを変更することができ...着信中に画面のオン/オフを区別する方法は?
public void onReceive(Context context, Intent intent) {
pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
Boolean screenOn = pm.isScreenOn();
Log.w(TAG, "Screen on is " + screenOn.toString());
画面状態とは非同期のですか?画面がロックされている場合
public void onReceive(Context context, Intent intent) {
KeyguardManager kg = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
Boolean screenBlocked = !kg.inKeyguardRestrictedInputMode();
Log.w(TAG, "Screen lock is " + screenBlocked.toString());
そのような解決策は、情報を提供します:
こんにちは、私はあなたの助けが必要です。画面のロックが偽または真の場合、私はデバイスの画面を切り替える必要があります、あなたは私を助けることができますか? –