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

Kotlin का उपयोग करके Android में सर्विस से नोटिफिकेशन कैसे भेजें?

परिचय

यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके Android में सर्विस से नोटिफिकेशन कैसे भेजा जाए।

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

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

चरण 2: activity_main.xml लेआउट जोड़ें

res/layout/activity_main.xml में निम्न कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Input" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="startService"
        android:text="Start Service" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="stopService"
        android:text="Stop Service" />
</LinearLayout>

चरण 3: MainActivity.kt लागू करें

src/MainActivity.kt में निम्न कोड जोड़ें:

import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
    lateinit var editText: EditText
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        editText = findViewById(R.id.editText)
    }
    
    fun startService(view: View) {
        val input: String = editText.text.toString()
        val serviceIntent = Intent(this, ExampleService::class.java)
        serviceIntent.putExtra("inputExtra", input)
        ContextCompat.startForegroundService(this, serviceIntent)
    }
    
    fun stopService(view: View) {
        val serviceIntent = Intent(this, ExampleService::class.java)
        stopService(serviceIntent)
    }
}

चरण 4: ExampleService.kt बनाएं

ExampleService.kt नाम से एक नई क्लास बनाएं और निम्न कोड जोड़ें:

import android.app.*
import android.content.Intent
import android.os.Build
import android.os.IBinder
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat

class ExampleService : Service() {
    private val channelId = "Notification from Service"
    
    @RequiresApi(Build.VERSION_CODES.O)
    override fun onCreate() {
        super.onCreate()
        if (Build.VERSION.SDK_INT >= 26) {
            val channel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                NotificationChannel(
                    channelId,
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT
                )
            } else {
                TODO("VERSION.SDK_INT < O")
            }
            (getSystemService(NOTIFICATION_SERVICE) as NotificationManager).createNotificationChannel(channel)
        }
    }
    
    override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
        val input = intent.getStringExtra("inputExtra")
        val notificationIntent = Intent(this, MainActivity::class.java)
        val pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0)
        
        val notification: Notification = NotificationCompat.Builder(this, channelId)
            .setContentTitle("Example Service")
            .setContentText(input)
            .setSmallIcon(R.drawable.notification)
            .setContentIntent(pendingIntent)
            .build()
        
        startForeground(1, notification)
        return START_NOT_STICKY
    }
    
    override fun onBind(p0: Intent?): IBinder? {
        return null
    }
}

चरण 5: AndroidManifest.xml कॉन्फ़िगर करें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <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>
        <service android:name=".ExampleService" />
    </application>
</manifest>

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

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

नोट: R.drawable.notification के लिए एक नोटिफिकेशन आइकन जोड़ना सुनिश्चित करें। Android 8.0+ के लिए नोटिफिकेशन चैनल आवश्यक हैं।
  1. Android में नोटिफिकेशन से सर्विस कैसे शुरू करें? Android में नोटिफिकेशन से सर्विस कैसे शुरू करें?

    Android में नोटिफिकेशन से सर्विस शुरू करना यह उदाहरण दर्शाता है कि Android में नोटिफिकेशन से सर्विस कैसे शुरू की जाती है। चरण 1 - नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - res/layout/activity_main.xml में कोड जोड़

  1. एंड्रॉइड में अलार्म मैनेजर का उपयोग करके सर्विस कैसे शुरू करें? एंड्रॉइड में अलार्म मैनेजर का उपयोग करके सर्विस कैसे शुरू करें?

    AlarmManager के साथ निर्धारित समय पर सर्विस शुरू करें यह उदाहरण दर्शाता है कि AlarmManager और PendingIntent का उपयोग करके निर्धारित समय पर बैकग्राउंड सर्विस कैसे शुरू करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में Start/Stop बटन res/layout/activity_m

  1. Android में JavaMail API से ईमेल कैसे भेजें? Android में JavaMail API से ईमेल कैसे भेजें?

    यह उदाहरण दर्शाता है कि Android ऐप में JavaMail API का उपयोग करके प्रोग्रामेटिकली ईमेल कैसे भेजा जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं। चरण 2: निर्भरताएं जोड़ें build.gradle (Module: app) में JavaMail निर्भरताएं जोड़ें: dependencies { implementation