2012-12-07 138 views
0

我正在实现一个应用程序,如果可用,我必须显示报警信息(日期,时间..)。有没有人知道如何访问警报信息? 非常感谢获取报警信息

+0

我分享我的解决方案在[这里] [1],希望它可以帮助 [1]:http://stackoverflow.com/questions/15081573/get-alarm-infomation-and-changing-it -in-android-4-0/27616154#27616154 –

回答

2

尝试是这样的

final String tag_alarm = "tag_alarm"; 
Uri uri = Uri.parse("content://com.android.alarmclock/alarm") 
Cursor c = getContentResolver().query(uri, null, null, null, null); 
Log.i(tag_alarm, "no of records are" + c.getCount()); 
Log.i(tag_alarm, "no of columns are" + c.getColumnCount()); 
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.i(tag_alarm, c.getColumnName(j); 
         + " which has value " + c.getString(j)); 
      } 
     } while (c.moveToNext()); 
    } 
} 
+0

此代码构成错误“权限被拒绝”。此外,在API9中将“content://com.android.alarmclock/alarm”更改为“content://com.android.deskclock/alarm” – Nguyen

+0

更改了uri后它有效吗? – curious

+0

不是,更改uri后,它构成“权限被拒绝”错误 – Nguyen

3

结果:最后,我可以通过使用上述好奇的回答检索报警信息。此外,当我在/ packages/apps /中探索Deskclock应用程序时,我发现了另一种获取下一个闹钟格式的方法(我用这种方式在我的LockScreen上显示闹钟信息,因为它比Curious的闹钟更简单:))

String nextAlarm = Settings.System.getString(getContentResolver(), 
         Settings.System.NEXT_ALARM_FORMATTED); 
if(TextUtils.isEmpty(nextAlarm) { 
    Log.v(TAG, "nextAlarm is empty"); 
} else { 
    Log.v(TAG, "nextAlarm is :" + nextAlarm); 
} 

下一个报警的格式是这样的:

Sat 09:00 

缺点的一点是,它只能运行在系统环境中(你必须将它们嵌入到Android源 - >构建它,并通过图像文件运行)。