我尝试在bool getPaid() const;
std::string getName() const;
的锁定屏幕上打开Activity
,但不能。
我在Android清单以及我搜索的适当活动和权限上添加了Android Pie
和showWhenLocked
,但是无法在手机的默认锁定屏幕上打开该活动。有帮助吗?
MainActivity
turnScreenOn
Android清单
android:showWhenLocked =“ true”
android:turnScreenOn =“ true”
android:showOnLockScreen =“ true”
android:excludeFromRecents =“ true”
答案 0 :(得分:1)
只需在要在锁定屏幕上打开的活动中覆盖以下方法即可。
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
并将以下标记添加到清单中的活动中。
android:excludeFromRecents="true"
答案 1 :(得分:0)
这是我的工作方法,在活动的setContentView()之前从onCreate()调用它
还为您在AndroidManifest文件中的活动设置了以下标志。
android:showOnLockScreen="true"
/ ** *允许呼叫屏幕显示在锁定屏幕上 * /
private fun allowOnLockScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true)
setTurnScreenOn(true)
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
keyguardManager.requestDismissKeyguard(this, null)
} else {
this.window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)
}
}