2014-02-22 87 views
18

有没有什么办法以编程方式以编程方式在我们的应用程序 中以编程方式获得android设备中的所有活动警报列表。只要指出一些可以提供帮助的链接,我基本上就会尝试为用户提供在设备中查看所有警报的功能,因此我想获取设备中所有活动警报的列表。Android获取活动警报列表

回答

14

简答:你不能。

报警管理器无法识别系统当前计划的报警。每个使用警报管理器的应用程序都必须保存它们设置的每个警报的状态。

但是,您可以通过adb获取列表,如Get list of active PendingIntents in AlarmManager中所述。而一个应用程序可能会获得系统转储并获取警报,但需要root权限。

+0

但也有可以设置/更新活动报警的应用程序。他们如何做到这一点? – julestruong

+0

应用程序可以通过维护活动警报列表来设置/修改自己的警报。该列表将持续使用SharedPreferences或sqlite。要修改或删除警报,请重新创建与警报对象设置完全相同的警报对象并使用AlarmManger方法。干杯。 –

+1

通过主动报警,我的意思是在“时钟”应用程序android中创建的报警。我们可以访问这些警报吗? – julestruong

11

不,AFAIK你不能这样做以编程方式显示信息给UI中的用户是不可行的。

但是供自己参考,你可以通过

adb shell dumpsys alarm 

转储报警数据不需要为root权限。

但是你从上面得到的东西可能会让人很难理解。为了完全理解这个转储,你应该检查morphatic的答案here

3

如果你的意思是通过激活的闹钟,在设备的闹钟应用程序中,我认为你可以。尝试检查Here中的方法。

但是,如果您的意思是您希望在您的设备上看到由AlarmManager创建的所有警报,那么不幸的是,您无法以编程方式执行该警报。

但是,你可以在这样一个文本文件查看转储数据:

adb shell dumpsys alarm > dump.txt