第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從鎖屏喚醒設(shè)備并顯示活動

從鎖屏喚醒設(shè)備并顯示活動

qq_笑_17 2022-11-30 16:43:14
我正在編寫警報應(yīng)用程序。當響鈴時間到了,我希望設(shè)備喚醒并顯示允許用戶禁用鬧鐘的活動。它工作正常,除非設(shè)備被鎖定(也就是在鎖屏上)。我已經(jīng)嘗試了很多我找到的關(guān)于這個的答案,但幾乎所有的東西似乎都被棄用了,我顯然想避免使用這些方法。使用我當前的代碼(我試圖將我找到的答案結(jié)合起來)它會振動很短的時間(我的鬧鐘應(yīng)該在響鈴時這樣做,但通常它會持續(xù)到鬧鐘被禁用) ,但不會更多。之后解鎖設(shè)備時,不會顯示禁用警報的活動并且警報不會響起(由該活動完成)。但是,我已經(jīng)檢查并確保 onCreate() 方法完全執(zhí)行并且直到最后沒有任何錯誤。在我的 BroadcastReceiver 中(我使用 AlarmManager 在必要的時候執(zhí)行我的代碼):    @Override    public void onReceive(Context context, Intent intent)    {        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "myalarmapp:alarm.");        wl.acquire(600000);        Intent startAlarmActivity = new Intent(context, AlarmActivity.class);        context.startActivity(startAlarmActivity);        wl.release();    }在我的活動的 onCreate() 方法中:        setContentView(R.layout.activity_alarm);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {            setShowWhenLocked(true);            setTurnScreenOn(true);            KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);            keyguardManager.requestDismissKeyguard(this, null);        }        else {            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |                    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);        }在我的 AndroidManifest.xml 中:    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />...最好我希望活動顯示在鎖屏“上方”,但這不是我的主要優(yōu)先事項。如果 Activity 開始并且用戶必須解鎖他們的手機才能看到它就足夠了,而 Activity 一直在振動并使手機響鈴。注意:我正在 Android 7.1 上測試我的應(yīng)用程序,我當前的最低 API 級別是 21。
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經(jīng)驗 獲得超2個贊

我已經(jīng)弄清楚了,喚醒鎖實際上并不是什么問題。問題是我還在活動的 onStop() 方法中取消了警報(并調(diào)用了 finish() )。當屏幕被鎖定時 onStop() 被立即調(diào)用,所以它也關(guān)閉了活動并停止響鈴。


我通過檢查以下布爾值來修復(fù)它(來源:檢測屏幕何時鎖定):



        KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

        boolean isPhoneLocked = keyguardManager.inKeyguardRestrictedInputMode();


        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);

        boolean isScreenAwake = powerManager.isInteractive();

通過該解決方案,我還設(shè)法在鎖屏上顯示它,而無需為 AndroidManifest 中的活動設(shè)置選項。


查看完整回答
反對 回復(fù) 2022-11-30
  • 1 回答
  • 0 關(guān)注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號