3

特定の時間にデバイスを起動し、キーガードを閉じて、ユーザーが閉じるまで何らかのアクティビティを表示するアプリを開発しています。だから、

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

Android Lollipop では動作しませんが、Android 以前のバージョンでは完全に動作します!! 助言がありますか?

4

1 に答える 1

0

これは実用的なソリューションです:

BroadcastReceiver クラス

@Override
public void onReceive(Context context, Intent intent) {
    mWakeLock = ((PowerManager) context.getApplicationContext().getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG");
    if (!mWakeLock.isHeld()) {
        mWakeLock.acquire();
    }
    Intent intent = new Intent(context, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
    mWakeLock.release();
}

MainActivity クラス

@Override
public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN |
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.activity);
....
}

そして今、Android Lollipop 5.0.1でも動作しています

于 2015-03-31T20:59:34.223 に答える