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

Kotlin का उपयोग करके Android में वर्तमान में चल रहे ऐप्स को प्रोग्रामेटिकली कैसे खोजें?

यह उदाहरण दर्शाता है कि 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 आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप चलने पर डिफ़ॉल्ट स्क्रीन देखें।

  1. Android में GPS प्रोग्रामेटिकली कैसे इनेबल/डिसेबल करें? Android में GPS प्रोग्रामेटिकली कैसे इनेबल/डिसेबल करें?

    यह उदाहरण दर्शाता है कि Android में GPS लोकेशन सर्विस की स्थिति कैसे जांची जाए और यूजर को सेटिंग्स स्क्रीन पर भेजकर उसे इनेबल/डिसेबल करने के लिए कैसे प्रेरित किया जाए। ⚠️ महत्वपूर्ण: सुरक्षा कारणों से Android ऐप्स को सीधे GPS ऑन/ऑफ करने की अनुमति नहीं देता (Android 2.3+ से)। ऐप केवल यूजर को लोकेशन

  1. एंड्रॉइड में प्रोग्रामेटिक रूप से फोन नंबर कैसे प्राप्त करें? एंड्रॉइड में प्रोग्रामेटिक रूप से फोन नंबर कैसे प्राप्त करें?

    TelephonyManager से फोन नंबर पढ़ना (परमिशन के साथ) यह उदाहरण दर्शाता है कि TelephonyManager.getLine1Number() का उपयोग करके डिवाइस का फोन नंबर कैसे प्राप्त करें और रनटाइम परमिशन कैसे संभालें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में TextView res/layou

  1. एंड्रॉइड में वर्तमान में चल रहे ऐप्स प्रोग्रामेटिकली कैसे खोजें एंड्रॉइड में वर्तमान में चल रहे ऐप्स प्रोग्रामेटिकली कैसे खोजें

    ActivityManager का उपयोग करके चल रहे टास्क्स/ऐप्स की सूची प्राप्त करना एंड्रॉइड में ActivityManager.getRunningTasks() और getRunningAppProcesses() का उपयोग करके चल रहे एप्लिकेशन की जानकारी प्राप्त की जा सकती है। नोट: एंड्रॉइड 5.0+ (API 21) में getRunningTasks() डिप्रिकेटेड है और केवल कॉलर के अपने टास