java - How can i set an alarm with AlarmManager set() -
i have tried set alarm in android app. failed. have read tutorials don't work me, don't see mistake.
here code:
manifest :
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.byethost6.jessy_barthelemy.planificate"> <uses-permission android:name="com.android.alarm.permission.set_alarm"/> <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".createtask"></activity> <receiver android:name="com.byethost6.jessy_barthelemy.planificate.hourreceiver" android:process=":remote"/> </application> </manifest> i set alarm :
alarmmanager alarmmanager; pendingintent alarmintent; alarmmanager = (alarmmanager)context.getsystemservice(context.alarm_service); intent intent = new intent(context, hourreceiver.class); alarmintent = pendingintent.getbroadcast(context, 0, intent, pendingintent.flag_one_shot); calendar calendar = calendar.getinstance(); calendar.set(calendar.hour_of_day, hours); calendar.set(calendar.minute, minutes); alarmmanager.set(alarmmanager.rtc_wakeup, calendar.gettimeinmillis(), alarmintent); toast.maketext(context, "alarm set", toast.length_short).show(); and broadcast receiver :
package com.byethost6.jessy_barthelemy.planificate; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.widget.toast; import com.byethost6.jessy_barthelemy.planificate.enumeration.triggerenum; import com.byethost6.jessy_barthelemy.planificate.helper.task; public class hourreceiver extends broadcastreceiver{ @override public void onreceive(context context, intent intent) { toast.maketext(context, "alarm triggered", toast.length_long).show(); } } could please me? :)
this alarm in mainactivity
alarmmanager = (alarmmanager)getapplicationcontext().getsystemservice(context.alarm_service); intent intent = new intent(getapplicationcontext(), mybroadcastreceiver.class); pendingintent = pendingintent.getbroadcast(getapplicationcontext(), 0, intent, 0); // set alarm start @ time. calendar calendar = calendar.getinstance(); calendar.settimeinmillis(system.currenttimemillis()); int curhr = calendar.get(calendar.hour_of_day); // checking whether current hour on 14 if (curhr >= 13) { // since current hour on 14, setting date next day calendar.add(calendar.date, 1); } calendar.set(calendar.hour_of_day, 13); calendar.set(calendar.minute, 30); // setrepeating() lets specify precise custom interval--in case, // every day alarmmanager.setrepeating(alarmmanager.rtc_wakeup, calendar.gettimeinmillis(), alarmmanager.interval_day, pendingintent); and broadcastreceiver
public class mybroadcastreceiver extends broadcastreceiver { @override public void onreceive(context context, intent intent) { powermanager pm = (powermanager) context.getsystemservice(context.power_service); powermanager.wakelock wl = pm.newwakelock(powermanager.partial_wake_lock, "tag"); //acquire lock wl.acquire(); log.v("adebugtag", "it work!"); //release lock wl.release(); } } with code in log can see "it work" when alarm fire!
the manifest
<uses-permission android:name="android.permission.wake_lock" /> <uses-permission android:name="com.android.alarm.permission.set_alarm" /> <receiver android:name=".mybroadcastreceiver" />
Comments
Post a Comment