无论系统时钟还是任何第三方应用程序设置的所有警报数据,我该如何检索?我需要跟踪用户的睡眠方式。这是我到目前为止尝试过的
final String tag_alarm = "tag_alarm";
Uri uri = Uri.parse("content://com.android.alarmclock/alarm");
Cursor c = getContentResolver().query(uri, null, null, null, null);
if (c != null) {
String names[] = c.getColumnNames();
for (String temp : names) {
System.out.println(temp);
}
if (c.moveToFirst()) {
do {
for (int j = 0; j < c.getColumnCount(); j++) {
Log.d(tag_alarm, c.getColumnName(j)
+ " which has value " + c.getString(j));
}
} while (c.moveToNext());
}
}
但是不幸的是,光标值c
始终返回null。
从this问题开始,我似乎可以转储警报数据以用于调试,但我需要在生产应用程序中使用它们。
如果您是指活动警报,即设备的“闹钟应用程序”中的警报,我认为可以。尝试从https://developer.android.com/reference/android/provider/AlarmClock.html中检出方法。
但是,如果您想在设备上查看由AlarmManager创建的所有警报,那么很遗憾,您不能以编程方式进行操作。
但是,您可以像这样在文本文件中查看转储数据:
adb shell dumpsys alarm > dump.txt