Created
January 16, 2017 21:38
-
-
Save Domacoski/5f78cbbf27b461254fbd7a9031e0a7e1 to your computer and use it in GitHub Desktop.
AlarmManager
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ubi.app.services; | |
import android.content.BroadcastReceiver; | |
import android.content.Context; | |
import android.content.Intent; | |
import ubi.app.Configuracao; | |
/** | |
* Created by thiago.domacoski on 16/01/17. | |
*/ | |
public class BootService extends BroadcastReceiver { | |
@Override | |
public void onReceive(Context context, Intent intent) { | |
Configuracao.configurar(context); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ubi.app; | |
import android.app.AlarmManager; | |
import android.app.PendingIntent; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.widget.Toast; | |
import java.text.SimpleDateFormat; | |
import java.util.Calendar; | |
import ubi.app.services.ReceptorAlarme; | |
import ubi.app.sharedpreferences.Horario; | |
import ubi.app.sharedpreferences.SharedPreferencesModel; | |
/** | |
* Created by thiago.domacoski on 16/01/17. | |
*/ | |
public class Configuracao { | |
public static void configurar(final Context mContext){ | |
if(null == mContext){ | |
return; | |
} | |
final AlarmManager alarmManager = AlarmManager.class.cast(mContext.getSystemService(Context.ALARM_SERVICE)); | |
final Horario horario = new SharedPreferencesModel<Horario>().load(Horario.class, mContext); | |
if(!horario.getAtivo()){ | |
alarmManager.cancel(getPendingIntent(mContext)); | |
}else { | |
Calendar calendar = Calendar.getInstance(); | |
calendar.set(Calendar.HOUR_OF_DAY, horario.getHora()); | |
calendar.set(Calendar.MINUTE, horario.getMinuto()); | |
calendar.set(Calendar.SECOND, 0); | |
calendar.set(Calendar.MILLISECOND, 0); | |
if(calendar.getTimeInMillis() < System.currentTimeMillis()){ | |
calendar.set(Calendar.DAY_OF_YEAR, (calendar.get(Calendar.DAY_OF_YEAR))); | |
} | |
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss dd/MM/yy"); | |
Toast.makeText(mContext, simpleDateFormat.format(calendar.getTimeInMillis()), Toast.LENGTH_SHORT).show(); | |
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, getPendingIntent(mContext)); | |
} | |
} | |
private static PendingIntent getPendingIntent(final Context mContext){ | |
final Intent intent = new Intent(mContext, ReceptorAlarme.class); | |
return PendingIntent.getBroadcast(mContext, 0, intent, 0); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="ubi.app"> | |
<uses-permission android:name="android.permission.WAKE_LOCK" /> | |
<uses-permission android:name="android.permission.INTERNET" /> | |
<!-- To auto-complete the email text field in the login form with the user's emails --> | |
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> | |
<uses-permission android:name="android.permission.READ_PROFILE" /> | |
<uses-permission android:name="android.permission.READ_CONTACTS" /> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<activity android:name=".MainActivity"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
</activity> | |
<receiver | |
android:name=".services.BootService" | |
android:exported="false" | |
android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> | |
<intent-filter> | |
<action android:name="android.intent.action.BOOT_COMPLETED" /> | |
<category android:name="android.intent.category.DEFAULT" /> | |
</intent-filter> | |
</receiver> | |
<receiver android:name=".services.ReceptorAlarme" /> | |
<activity | |
android:name=".LoginActivity" | |
android:label="@string/title_activity_login"></activity> | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ubi.app.services; | |
import android.app.NotificationManager; | |
import android.app.PendingIntent; | |
import android.content.BroadcastReceiver; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.graphics.BitmapFactory; | |
import android.support.v4.app.NotificationCompat; | |
import ubi.app.MainActivity; | |
import ubi.app.R; | |
/** | |
* Created by thiago.domacoski on 16/01/17. | |
*/ | |
public class ReceptorAlarme extends BroadcastReceiver{ | |
public static final int FLAG_NOTIFICATION = 92346; | |
@Override | |
public void onReceive(Context context, Intent intent) { | |
final Intent i = new Intent(context, MainActivity.class); | |
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); | |
final PendingIntent pendingIntent = PendingIntent.getActivity(context, 99, i, PendingIntent.FLAG_UPDATE_CURRENT); | |
final NotificationManager mNotification = NotificationManager.class.cast(context.getSystemService(Context.NOTIFICATION_SERVICE)); | |
final NotificationCompat.Builder builder = new NotificationCompat.Builder(context); | |
builder.setAutoCancel(true); | |
builder.setSmallIcon(R.drawable.ic_stat_name); | |
builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)); | |
builder.setContentTitle("Título da notificação"); | |
builder.setContentText("Descrição da Notificação que aberta! "); | |
builder.setContentIntent(pendingIntent); | |
builder.setVibrate(new long[]{500, 500, 500, 500}); | |
// NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender() | |
// .setBackground(BitmapFactory.decodeResource(getResources(), R.drawable.ic_notif_trip_processed)) | |
// .setHintHideIcon(true); | |
// builder.extend(wearableExtender); | |
mNotification.notify(FLAG_NOTIFICATION, builder.build()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment