serkan özer
serkan özer
Bursa
05/02/2014 tarihinden beri üye
30 GY Puanı
73K GY Sırası

Kişisel Sayfaları

İlgi Alanları

1 Rozet
2 Sertifika
1 Soru Sordu
0 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Marmara Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (2)
Web Programlama 101 Sertifikası
Veriliş Tarihi: Eylül 2016
Android 101 Sertifikası
Veriliş Tarihi: Şubat 2014
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

1
Tümünü Gör

Haftanın belirli gününe nasıl alarm koyabilirim.

Merhaba arkadaşlar benim geliştirdiğim bir uygulama da ders programı oluşturuluyor. Ders zamanı gelince bildirim vermek istiyorum.

Yani pazartesi saat 8 de ders varsa. Her Hafta saat 8 de ders zamanı geldi. diye bildirim oluşturmak istiyorum. Bunu alarmmaneger ve notificition ile yapıyorum. Tek seferlik alarm verebiliyorum. Ama tekrarlı bir türlü veremedim. Kodlar şöyle. Recevier kısmı çalıştığı için onu vermiyecem.

private void alarmla() {
        SQLiteDatabase db=activity.openOrCreateDatabase("SINIFD",activity.MODE_PRIVATE,null);
        Cursor c = db.rawQuery("select * from ders", null);
        if(c.getCount()>0){
            c.moveToFirst();

                do {
                AlarmManager alarmManager = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
                Toast.makeText(activity, c.getString(3).split(":")[0] + " " + c.getString(3).split(":")[1], Toast.LENGTH_LONG).show();
                Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
                notificationIntent.addCategory("android.intent.category.DEFAULT");
                notificationIntent.putExtra("message", c.getString(1) + " dersi zamanı geldi. Kazanımlara ulaşmak için tıklayınız. İyi dersler.");
                notificationIntent.putExtra("gizli", c.getString(6));
                PendingIntent broadcast = PendingIntent.getBroadcast(activity, c.getInt(0), notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

                  Calendar timeOff = Calendar.getInstance();
                  int days = guncek(c.getString(5),timeOff) + (7 - timeOff.get(Calendar.DAY_OF_WEEK)); // how many days until Sunday
                  timeOff.add(Calendar.DATE, days);
                 timeOff.set(Calendar.HOUR, Integer.parseInt(c.getString(3).split(":")[0]));  //buraya 22 geliyor databaseden
                 timeOff.set(Calendar.MINUTE,Integer.parseInt(c.getString(3).split(":")[1]));  //buraya 10 geliyor mesala
                    timeOff.set(Calendar.SECOND, 0);
                    timeOff.set(Calendar.MILLISECOND, 0);
                     alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeOff.getTimeInMillis(),AlarmManager.INTERVAL_DAY * 7, broadcast);
            






            } while (c.moveToNext());
            c.close();

        }
        db.close();
        Toast.makeText(activity,"Vay be ayar ",Toast.LENGTH_LONG).show();
    }
private int guncek(String i,Calendar ib){
//benim database de kayıdım pazartesi 0 salı 1..... diye gidiyor.
    switch(Integer.parseInt(i)+1){
        case 1:
            return ib.MONDAY;
        case 2:
            return ib.TUESDAY;
        case 3:
            return ib.WEDNESDAY;
        case 4:
            return ib.THURSDAY;
        case 5:
            return ib.FRIDAY;
        case 6:
            return ib.SATURDAY;
        case 7:
            return ib.SUNDAY;
        default:
            return 1;
    }

}

Database kısmında sorun yok zaman ayarlama da var.