Bonjour, dans le cadre d'un projet, j'ai besoin que mon application fasse une notification tous les jours pour rappeler à l'utilisateurs d'aller sur l'application. Pour cela, avant de coder directement sur mon projet, j'ai crée une application qui crée juste une notification tous les jours. malheureusement, mon application compile mais ne crée pas de notification. je vous joint mon code :
Fichier MainActivity :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
package com.example.victouf.testnotif;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.icu.util.Calendar;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
public class MainActivity extends AppCompatActivity {
    AlarmManager am;
 
    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Calendar cal = Calendar.getInstance();
 
        cal.set(Calendar.HOUR_OF_DAY,23);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND,0);
        Intent intent = new Intent(getApplicationContext(), TimeAlarm.class);
        PendingIntent p = PendingIntent.getBroadcast(getApplicationContext(),100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        am = (AlarmManager) getSystemService(ALARM_SERVICE);
        am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY,p);
 
    }
 
}
fichier TimeAlarm :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
package com.example.victouf.testnotif;
 
import android.content.BroadcastReceiver;
 
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
 
 
/**
 * Created by Victouf on 05/12/2017.
 */
 
public class TimeAlarm extends BroadcastReceiver {
 
 
    @Override
    public void onReceive(Context context, Intent intent) {
        NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        CharSequence from = "developpez.et";
        CharSequence message = "message de notif";
        Intent ri = new Intent(context, Repeating_activity.class);
        ri.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pi = PendingIntent.getActivity(context, 100 , ri, PendingIntent.FLAG_UPDATE_CURRENT);
        NotificationCompat.Builder b = new NotificationCompat.Builder(context)
                .setContentIntent(pi)
                .setSmallIcon(R.drawable.icon)
                .setContentTitle("psssst")
                .setContentText("T'AS MAL???")
                .setAutoCancel(true);
 
        nm.notify(100,b.build());
    }
 
 
}
fichier Repeating_activity :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
package com.example.victouf.testnotif;
 
import android.app.Activity;
import android.os.Bundle;
 
/**
 * Created by Victouf on 06/12/2017.
 */
 
public class Repeating_activity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yep);
    }
}
mon Androidmanifest :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.victouf.testnotif">
    <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: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>
        <activity android:name=".Repeating_activity"/>
        <receiver android:name=".TimeAlarm" />
    </application>
 
</manifest>
Le but est que tous les jours, à 23h, j'ai une notification qui si je clique dessus, m'ouvre l'activité Repeating_activity.

Merci de votre aide et de votre compréhension.