我正在创建一个教育应用程序,学生可以在其中进行5分钟的快速考试。大多数时候,他们使用 parent 的手机。

现在我想要的是,当学生参加考试时,任何其他应用程序(如WhatsApp,FB或Gmail)都不会发出通知。

这可能吗?如何?

最佳答案

一种可能的解决方案是将电话设置为DND(请勿打扰)模式。我尚未对此进行测试,但是根据文档,您应该可以执行以下操作:

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
int currentFilter = notificationManager.getCurrentInterruptionFilter();
notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);
// Run the exam...
// Restore the filter
notificationManager.setInterruptionFilter(currentFilter);

不过,这需要特殊的DND访问权限,并且需要Android M:
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

该权限需要由用户通过“设置”接受。有关更多背景信息以及如何启动导致该设置的 Activity ,请参见this question

第二个选项是使用Screen Pinning,它是Android L中引入的。

10-06 03:25