यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके Android में वर्तमान में चल रहे एप्लिकेशन्स को प्रोग्रामेटिकली कैसे खोजा जाता है। नोट: Android 5.0 (API 21) से getRunningTasks() डिप्रिकेटेड है; आधुनिक ऐप्स के लिए UsageStatsManager का उपयोग करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio खोलें, File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2: activity_main.xml में UI जोड़ें
<?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:textColor="@android:color/background_dark"
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
चरण 3: MainActivity.kt में रनिंग टास्क्स प्राप्त करें (लीगेसी)
import android.app.ActivityManager
import android.app.ActivityManager.RunningTaskInfo
import android.content.Context
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val textView: TextView = findViewById(R.id.textView)
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val recentTasks: List<RunningTaskInfo> = Objects.requireNonNull(activityManager).getRunningTasks(Int.MAX_VALUE)
for (i in recentTasks.indices) {
textView.text = "Application executed: ${recentTasks[i].baseActivity!!.toShortString()} ID: ${recentTasks[i].id}"
}
}
}
चरण 4: आधुनिक दृष्टिकोण (Android 5.0+) - UsageStatsManager
import android.app.usage.UsageStats
import android.app.usage.UsageStatsManager
import android.content.Context
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val textView: TextView = findViewById(R.id.textView)
val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val endTime = System.currentTimeMillis()
val beginTime = endTime - 1000 * 60 * 60 * 24 // पिछले 24 घंटे
val stats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginTime, endTime)
val sortedStats = stats.sortedByDescending { it.lastTimeUsed }
val packageManager = packageManager
val appNames = sortedStats.map { stats ->
try {
val appInfo = packageManager.getApplicationInfo(stats.packageName, 0)
"${packageManager.getApplicationLabel(appInfo)} (${stats.packageName}) - Last used: ${formatTime(stats.lastTimeUsed)}"
} catch (e: PackageManager.NameNotFoundException) {
"${stats.packageName} - Last used: ${formatTime(stats.lastTimeUsed)}"
}
}
textView.text = appNames.joinToString("\n")
}
private fun formatTime(timestamp: Long): String {
return java.text.SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.getDefault()).format(java.util.Date(timestamp))
}
}
चरण 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.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />
<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>
</application>
</manifest>
नोट: PACKAGE_USAGE_STATS अनुमति के लिए उपयोगकर्ता को Settings → Security → Apps with usage access में जाकर मैन्युअली अनुमति देनी होगी।
ऐप चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में किसी एक्टिविटी फ़ाइल को खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप चलने पर डिफ़ॉल्ट स्क्रीन देखें।