android-程序的警报铃声不响怎么办

问题描述

程序的警报铃声不响怎么办

我创建了一个应用,用户可以添加日程主题,然后在应用里设置每个日程的限定时间,到了一个日程的限定时间之后,应用就会进行提醒,还有铃声,但是现在提醒消息可以正常出来,没有铃声,请高手帮我看一下代码出错在那里?谢谢

铃声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

android-程序的警报铃声不响怎么办的相关文章

获取android系统手机的铃声和音量

获取android系统手机的铃声和音量   通过程序 获取android系统手机的铃声和音量.设置音量的方法也很简单,AudioManager提供了方法: publicvoidsetStreamVolume(intstreamType,intIndex,intFlags)其中streamType有内置的常量,去文档里面就可以看到. Java代码: AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_S

android studio-gradle打包Android程序,如何打包时不包含依赖包

问题描述 gradle打包Android程序,如何打包时不包含依赖包 使用gradle打包Android程序,希望不包含依赖的lib中的jar包,就像在eclipse的build Path中勾掉依赖,同理下图的操作怎么在gradle的构建打包中实现 解决方案 解决方案二: 楼主有啥解决思路吗? 解决方案三: https://stackoverflow.com/questions/16107477/gradle-how-to-make-a-compile-scope-file-dependency

Eclipse开发Android程序如何在手机上运行

1.设置android手机为USB调试模式 打开手机里面的开发者选项->USB调试 2.通过eclipse上真机测试 没用真机时,用eclipse开发android程序都是点run,然后选择模拟器的.安装好手机的usb驱动后,还是点run,程序就会神奇的在真机上运行了,效果与在模拟器中的一样,而且速度比用模拟器块很多. 如果还是在模拟器上运行,右键->run as->run configurations->target 选项1:总是提示选择设备 选项2:在所有的设备上登陆 选项3:

交叉编译android程序问题

问题描述 交叉编译android程序问题 请教各位牛人,linux 下交叉编译跑在android上的 C++程序,总是提示缺少等头文件,怎么解决?

在android程序中打开HPROF文件时出错

问题描述 在android程序中打开HPROF文件时出错 当我用Memory Analyzer打开HPROF文件时(由Debug.dumpHprofData创建),得到的是以下的异常: java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3) at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124) at org.eclipse.m

java-调用 getStringArray 后 android 程序崩溃

问题描述 调用 getStringArray 后 android 程序崩溃 程序出现了下面的错误,在 emulator中奔溃了.现在还不确定什么问题. Logcat: E/AndroidRuntime( 1928): FATAL EXCEPTION: main E/AndroidRuntime( 1928): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packtpub.kitchendroid/c

我的android程序方法超出了65535就如何解决了,求解???

问题描述 我的android程序方法超出了65535就如何解决了,求解??? 1C 我的android程序方法超出了65535就如何解决了,求解??? 解决方案 Android 解决65535的限制 使用android-support-multidex解决Dex超出方法数的限制问题让你的应用不再爆棚 解决方案二: 分解成多个apk,或者jar 解决方案三: http://blog.csdn.net/x_i_a_o_h_a_i/article/details/46544341 解决方案四: 很明显

windows phone程序启动和android程序启动原理的比较

windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面 来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程序定义指定起始Page(它是启动 WindowsPhone7程序时自动加载的Page). 指定方法是将 StartupUri 属性设置为所需的 Page 的 统一资源标识符 (URI). 可以在标记中以声明方式设置 StartupUri,如下面的示例所示. <Application    xmln

在android程序中处理来电

问题描述 在android程序中处理来电 我想在android平台上处理来电.我想设定一个时间期限, 如果手机接收到电话时,就会自动的发给来电用户一个信息. 如何设置? 解决方案 你需要在 Activity 或者 Service中申明 PhoneStateListener: PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int