2010-09-11 26 views
0

我有这样的代码在我的应用程序获取一条警告信息时,有没有这样的功能

Alarm1 = Settings.System.getString(getContentResolver(), 
       Settings.System.NEXT_ALARM_FORMATTED); 

及其对性HTC,摩托罗拉,但不能在GALAXY S phones.The应用程序崩溃的工作。 将在以下捕获错误没有崩溃的应用服务?

String Alarm1=null; 
try{ 
    Alarm1 = Settings.System.getString(getContentResolver(), 
       Settings.System.NEXT_ALARM_FORMATTED); 
    } 
    catch (Exception e) { 
    Log.i("Exception", "Exception next alarm not found = " + e); 
    } 
    if (TextUtils.isEmpty(Alarm1)) { 
     //if i am i here either no alarm is set or couldn't read it from the phone 
     //do something else 
    } 

除非有对GALAXY S不同的代码,我可以找到it.How我可以使它抛出这样的作品,用于测试的手机上的一个例外?谢谢。

+0

如果你有一个的Galaxy S,使用'ADB logcat',DDMS,或在Eclipse中DDMS角度来考察logcat的,看看你的异常关联的堆栈跟踪。如果您已经寄出您的应用程序,而这些都来自于用户的报告,你希望拥有的东西,将堆栈跟踪报告给你(例如,乱舞,DroidDrop)。一旦我们有堆栈跟踪来检查,我们可以给你更好的建议。 – CommonsWare 2010-09-11 11:58:41

回答

0

我有一个小部件我开发了同样的问题,似乎在Galaxy S的存在对settings.db没有条目ID为NEXT_ALARM_FORMATTED,这使得应用程序崩溃。令人遗憾的是,使用try/catch并不足以解决问题,小部件仍然崩溃。

我没有Galaxy S的调试问题,如果您发现任何解决办法,让我知道(比使用sqlite3的行CON settings.db插入等)。也许你可以尝试通过传递一个无效的ID来设置功能来模拟这种行为,我将在今天稍后再试......

附:要在GALAXY S临时修复这一点,你可以(通过ADB壳)

sqlite3 /data/data/com.android.providers.settings/databases/settings.db 
UPDATE "system" SET value='' WHERE name='next_alarm_formatted'; 
0

Settings.System.NEXT_ALARM_FORMATTED是因为API 21.使用弃用,而不是执行以下操作:

AlarmManager.AlarmClockInfo alarmInfo = am.getNextAlarmClock(); 

其中上午为实例AlarmManager。

相关问题