Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

भविष्य की विशिष्ट तारीख के लिए Android नोटिफिकेशन कैसे सेट करें?

भविष्य की विशिष्ट तारीख के लिए Android नोटिफिकेशन सेट करना

यह उदाहरण दर्शाता है कि भविष्य की विशिष्ट तारीख के लिए Android नोटिफिकेशन कैसे सेट किया जाता है।

चरण 1 - नया प्रोजेक्ट बनाएं

Android Studio में File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - res/layout/activity_main.xml में कोड जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/tvDate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Select Date"
        android:onClick="setDate"
        android:padding="16dp" />
</RelativeLayout>

चरण 3 - src/MainActivity.java में कोड जोड़ें

package app.tutorialspoint.com.notifyme;
import android.app.AlarmManager;
import android.app.DatePickerDialog;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
    public static final String NOTIFICATION_CHANNEL_ID = "10001";
    private final static String default_notification_channel_id = "default";
    Button btnDate;
    final Calendar myCalendar = Calendar.getInstance();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnDate = findViewById(R.id.btnDate);
    }

    private void scheduleNotification(Notification notification, long delay) {
        Intent notificationIntent = new Intent(this, MyNotificationPublisher.class);
        notificationIntent.putExtra(MyNotificationPublisher.NOTIFICATION_ID, 1);
        notificationIntent.putExtra(MyNotificationPublisher.NOTIFICATION, notification);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        assert alarmManager != null;
        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, delay, pendingIntent);
    }

    private Notification getNotification(String content) {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, default_notification_channel_id);
        builder.setContentTitle("Scheduled Notification");
        builder.setContentText(content);
        builder.setSmallIcon(R.drawable.ic_launcher_foreground);
        builder.setAutoCancel(true);
        builder.setChannelId(NOTIFICATION_CHANNEL_ID);
        return builder.build();
    }

    DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            myCalendar.set(Calendar.YEAR, year);
            myCalendar.set(Calendar.MONTH, monthOfYear);
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateLabel();
        }
    };

    public void setDate(View view) {
        new DatePickerDialog(MainActivity.this, date,
                myCalendar.get(Calendar.YEAR),
                myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH)).show();
    }

    private void updateLabel() {
        String myFormat = "dd/MM/yy";
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.getDefault());
        Date date = myCalendar.getTime();
        btnDate.setText(sdf.format(date));
        scheduleNotification(getNotification(btnDate.getText().toString()), date.getTime());
    }
}

चरण 4 - src/MyNotificationPublisher.java में कोड जोड़ें

package app.tutorialspoint.com.notifyme;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import static app.tutorialspoint.com.notifyme.MainActivity.NOTIFICATION_CHANNEL_ID;

public class MyNotificationPublisher extends BroadcastReceiver {
    public static String NOTIFICATION_ID = "notification-id";
    public static String NOTIFICATION = "notification";

    public void onReceive(Context context, Intent intent) {
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = intent.getParcelableExtra(NOTIFICATION);
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
            assert notificationManager != null;
            notificationManager.createNotificationChannel(notificationChannel);
        }
        int id = intent.getIntExtra(NOTIFICATION_ID, 0);
        assert notificationManager != null;
        notificationManager.notify(id, notification);
    }
}

चरण 5 - AndroidManifest.xml में कोड जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.notifyme">
    <uses-permission android:name="android.permission.VIBRATE" />
    <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=".MyNotificationPublisher" />
    </application>
</manifest>

एप्लिकेशन चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio से ऐप चलाएं और अपने मोबाइल डिवाइस पर डिफ़ॉल्ट स्क्रीन देखें।


  1. एंड्रॉइड में TextView स्पैन का कलर कैसे सेट करें? एंड्रॉइड में TextView स्पैन का कलर कैसे सेट करें?

    SpannableString और ForegroundColorSpan के साथ आंशिक टेक्स्ट कलरिंग यह उदाहरण दर्शाता है कि SpannableString का उपयोग करके TextView के विशिष्ट भागों का टेक्स्ट कलर कैसे बदलें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में TextView res/layout/activity_main.x

  1. मैटप्लॉटलीब में डेट के लिए xticklabels कैसे सेट करें? मैटप्लॉटलीब में डेट के लिए xticklabels कैसे सेट करें?

    मैटप्लॉटलीब में डेट के लिए xticklabels सेट करने के लिए, हम निम्नलिखित चरण अपना सकते हैं: चरण फिगर साइज़ सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग एडजस्ट करें। epochs और values की दो सूचियाँ बनाएं। epochs से डेट की सूची प्राप्त करें। एक फिगर और सबप्लॉट्स का सेट बनाएं। plot() मेथड का उपयोग करके

  1. Android पर म्यूजिक स्लीप टाइमर कैसे सेट करें Android पर म्यूजिक स्लीप टाइमर कैसे सेट करें

    क्या आप सोने से पहले अपने फोन या टैबलेट पर मीडिया सुनने का आनंद लेते हैं? यदि हां, तो शायद आपको म्यूजिक स्लीप टाइमर का विचार पसंद आएगा। स्लीप टाइमर काउंटडाउन हैं जिन्हें आप सोने से पहले सेट कर सकते हैं। एक बार काउंटडाउन समाप्त हो जाने पर, यह आपके डिवाइस पर चल रहे ऑडियो को रोक देता है। लक्ष्य काउंटड