будильник не появляется

я пытаюсь установить testalarm, когда я нажимаю кнопку внутри одного из моих фрагментов. но будильник не появляется.

public class AlarmReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub

            Toast.makeText(context, "OnReceive alarm test", Toast.LENGTH_SHORT).show();
        }
    }

//Button is inside a Fragment
Button SetAlarmButton = (Button)(v.findViewById(R.id.SetAlarmButton));       
        SetAlarmButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                try{
                    Calendar alarm = Calendar.getInstance();

                    alarm.set(Calendar.HOUR_OF_DAY, 18);
                    alarm.set(Calendar.MINUTE, 00);
                    long alarmMillis = alarm.getTimeInMillis();
                    Intent intent = new Intent(view.getContext(), AlarmReceiver.class);
                    PendingIntent pendingIntent = PendingIntent.getBroadcast(view.getContext(), 192837, intent, 
                                                              PendingIntent.FLAG_UPDATE_CURRENT);
                    AlarmManager am = (AlarmManager) view.getContext().getSystemService(view.getContext().ALARM_SERVICE);
                    am.set(AlarmManager.RTC_WAKEUP, alarmMillis , pendingIntent);

                }catch(Throwable e){AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
                    StringWriter sw = new StringWriter();
                    PrintWriter pw = new PrintWriter(sw);
                    e.printStackTrace(pw);
                    sw.toString();  
                    builder.setMessage(sw.toString());
                    AlertDialog alert = builder.create();
                    alert.show();
                }
        }}); 

я знаю, что мне нужно изменить мой манифест и добавить что-то вроде этого, но я не знаю, как и где именно

<receiver android:name="AlarmReceiver">
            ....
        </receiver>

к моему манифесту

<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="1" android:versionName="1.0"
    package="com.test.alarm" xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
    <application android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@style/AppTheme">
        <activity android:label="@string/title_activity_main" android:name=".Main">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity 
            android:name=".First_Start"
        />    
        <activity
            android:name=".Preferences"
            android:label="Settings">
        </activity>
    </application>
</manifest>

person Drilon Berisha    schedule 07.10.2012    source источник


Ответы (2)


Ознакомьтесь с документацией по AlarmManager: http://developer.android.com/reference/android/app/AlarmManager.html

Настраиваемый будильник не связан с функциональностью будильника, встроенной в приложение «Часы».

Аварийные сигналы используются системой, чтобы позволить приложению реагировать на какое-либо событие в будущем. Вы в основном говорите системе, что хотите, чтобы ваше приложение разбудили через некоторое время, и вы определяете, какая активность будет вызываться при срабатывании будильника.

person theelfismike    schedule 07.10.2012

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_MESSAGE, "New Alarm");
i.putExtra(AlarmClock.EXTRA_HOUR, hours);
i.putExtra(AlarmClock.EXTRA_MINUTES, mins);
startActivity(i);

но с этим я не могу указать день, когда я хочу, чтобы будильник был установлен

person Drilon Berisha    schedule 07.10.2012
comment
Не похоже, что установка шаблона дня недели возможна с намерением AlarmClock. developer.android.com/reference/android/provider/ - person theelfismike; 10.10.2012