自API 21 /Android5.0以来
不建议使用字段Settings.System.NEXT_ALARM_FORMATTED
做这件事的另一个选择是什么?我看到了http://developer.android.com/reference/android/app/AlarmManager.html#getNextAlarmClock(),但我真的不知道如何实现它。
发布于 2015-01-02 18:01:58
您应该将android升级到APILevel21,并且您的设备也应该与此兼容,您也可以删除try..catch块,但如果在manifest.xml android中:minSdkVersion小于21则更好。
try {
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
am.getNextAlarmClock();
Log.d("Nextalarm", am.getNextAlarmClock().toString());
} catch (NoSuchMethodError e) {
e.printStackTrace();
}发布于 2015-01-02 10:28:04
getNextAlarmClock()是AlarmManager类中的一个公共方法,它是在API 21中引入的。您需要安装API 21级才能使用此方法。同时,对进行必要的修改。
发布于 2016-11-13 23:32:25
我需要一些代码来简单地测试是否存在警报,这样我就可以在全屏应用程序上更新图形。感谢大家的贡献。基于所有这些,下面是我最后实现的:
private void testAlarms() {
String nextAlarm = null;
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
am.getNextAlarmClock();
try {
nextAlarm = am.getNextAlarmClock().toString();
} catch (Exception e) {
e.printStackTrace();
}
} else {
nextAlarm = Settings.System.getString(getContentResolver(),Settings.System.NEXT_ALARM_FORMATTED);
}
if(TextUtils.isEmpty(nextAlarm)) {
hideAlarm();
} else {
showAlarm();
}
}https://stackoverflow.com/questions/27333972
复制相似问题