【发布时间】:2020-03-26 21:36:48
【问题描述】:
我正在创建一个视频通话应用程序,并且当应用程序收到推送通知时调用以下代码 - 它解锁屏幕并显示“来电”用户界面:
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "x";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true);
setTurnScreenOn(true);
}
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
}
当有来电时,这可以正常工作 - 用户可以使用呈现的 UI 与应用程序交互。但是,问题是如果应用程序在前台,然后手机被锁定,当按下手机侧面的解锁按钮时,会显示应用程序,而不是显示键盘锁/锁定屏幕。如果应用程序位于前台并且手机已锁定并按下解锁按钮,则它永久允许访问该应用程序。
我希望应用程序在收到推送通知并且屏幕被锁定时出现,但我也希望用户能够完全锁定设备,并且在按下锁定按钮后不授予用户访问应用程序的权限.
我怎样才能做到这一点?
【问题讨论】:
标签: java android react-native