"২" এর সাথে শ্রদ্ধা সহ আমার পটভূমি অ্যাপ্লিকেশনটি কীভাবে জানতে পারে যে বর্তমানে অগ্রভাগে চলমান অ্যাপ্লিকেশনটি কী। "
getRunningAppProcesses()পদ্ধতিটি ব্যবহার করবেন না কারণ এটি আমার অভিজ্ঞতা থেকে সমস্ত ধরণের সিস্টেমের আবর্জনা ফিরিয়ে দেয় এবং আপনি একাধিক ফলাফল পাবেন RunningAppProcessInfo.IMPORTANCE_FOREGROUND। getRunningTasks()পরিবর্তে ব্যবহার করুন
আমার পূর্বপরিবর্তিত অ্যাপ্লিকেশনটি সনাক্ত করার জন্য আমি আমার পরিষেবাতে এই কোডটি ব্যবহার করি এটি সত্যই সহজ:
ActivityManager am = (ActivityManager) AppService.this.getSystemService(ACTIVITY_SERVICE);
// The first in the list of RunningTasks is always the foreground task.
RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0);
এটি হ'ল, তারপরে আপনি সহজেই অগ্রভাগের অ্যাপ্লিকেশন / ক্রিয়াকলাপের বিশদটি অ্যাক্সেস করতে পারবেন:
String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();
PackageManager pm = AppService.this.getPackageManager();
PackageInfo foregroundAppPackageInfo = pm.getPackageInfo(foregroundTaskPackageName, 0);
String foregroundTaskAppName = foregroundAppPackageInfo.applicationInfo.loadLabel(pm).toString();
ক্রিয়াকলাপের প্রকাশের জন্য এটির অতিরিক্ত অনুমতি প্রয়োজন এবং পুরোপুরি কাজ করে।
<uses-permission android:name="android.permission.GET_TASKS" />