问题描述
- 程序的警报铃声不响怎么办
-
我创建了一个应用,用户可以添加日程主题,然后在应用里设置每个日程的限定时间,到了一个日程的限定时间之后,应用就会进行提醒,还有铃声,但是现在提醒消息可以正常出来,没有铃声,请高手帮我看一下代码出错在那里?谢谢铃声manager class:
public class AlarmManager extends BroadcastReceiver { sampleDatabase appdb; SQLiteDatabase sqldb; Cursor cursor; int today,prev; Intent in; @Override public void onReceive(Context context, Intent intent) { NotificationManager manger = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.icon , "Yahrzeit" , System.currentTimeMillis()); in = new Intent(context,FirstAppActivity.class); in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, in, 0); notification.setLatestEventInfo(context, "ALERT!!!!", "Time Over" , contentIntent); notification.flags = Notification.FLAG_INSISTENT; appdb = new sampleDatabase(context); sqldb = appdb.getReadableDatabase(); cursor = sqldb.query(sampleDatabase.TABLE_SEC, null, null, null, null, null, null); cursor.moveToFirst(); Calendar cal = Calendar.getInstance(); cal.set(Calendar.SECOND, 0); today = (int)(cal.getTimeInMillis()/1000); Log.e("Naga","Alarm"); Log.e("today",Integer.toString(today)); prev = 0; cursor.moveToPrevious(); while(cursor.moveToNext()) { int dbdate = cursor.getInt(cursor.getColumnIndex(sampleDatabase.ALARMSET)); int id = cursor.getInt(cursor.getColumnIndex(sampleDatabase.ROW_ID)); Log.e("dbdate",Integer.toString(dbdate)); if((dbdate<=today)&&(dbdate>prev)) { manger.cancelAll(); manger.notify(1, notification); sqldb.execSQL("DELETE from " + sampleDatabase.TABLE + " where " + sampleDatabase.ROW_ID + "=" + id); sqldb.execSQL("DELETE from "+sampleDatabase.TABLE_SEC + " where " + sampleDatabase.ROW_ID + "=" + id); } prev = dbdate; } cursor.close(); sqldb.close(); }
调用这个的代码:
alarmintent = new Intent(getApplicationContext(),com.nagainfo.firstAp.AlarmManager.class); sender = PendingIntent.getBroadcast(getApplicationContext() , 0 , alarmintent , PendingIntent.FLAG_CANCEL_CURRENT | Intent.FILL_IN_DATA); am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(sender); alarmintent = new Intent(getApplicationContext(), com.nagainfo.firstAp.AlarmManager.class); //alarmintent.putExtra("note","Hebrew"); sender = PendingIntent.getBroadcast(getApplicationContext() , 0 , alarmintent , PendingIntent.FLAG_CANCEL_CURRENT | Intent.FILL_IN_DATA); am = (AlarmManager) getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, alarmtime, 60000, sender);
解决方案
原因是你没有对声音指定,
notification.defaults=Notification.DEFAULT_SOUND|Notification.DEFAULT_VIBRATE;
如果你要屏幕更亮:
notification.defaults=Notification.DEFAULT_SOUND|Notification.DEFAULT_VIBRATE|Notification.DEFAULT_LIGHTS;
解决方案二:
notification.sound = sound_uri;
就可以播放响应的声音了。
时间: 2024-11-01 15:20:18