我正在创建一个教育应用程序,学生可以在其中进行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中引入的。