দেখে মনে হচ্ছে বর্তমান গুগল বর্তমান অগ্রভাগের অ্যাপ্লিকেশন প্যাকেজ পাওয়ার জন্য সমস্ত দরজা বন্ধ করে দিয়েছে।
ললিপপ আপডেটের পরে, যা নিহত হয়েছিল getRunningTasks(int maxNum)
এবং এই উত্তরটির জন্য ধন্যবাদ , আমি এই কোডটি ললিপপের পর থেকে অগ্রভাগের অ্যাপ্লিকেশন প্যাকেজটি পেতে ব্যবহার করেছি:
final int PROCESS_STATE_TOP = 2;
RunningAppProcessInfo currentInfo = null;
Field field = null;
try {
field = RunningAppProcessInfo.class.getDeclaredField("processState");
} catch (Exception ignored) {
}
ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appList = am.getRunningAppProcesses();
for (RunningAppProcessInfo app : appList) {
if (app.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
app.importanceReasonCode == 0 ) {
Integer state = null;
try {
state = field.getInt( app );
} catch (Exception ignored) {
}
if (state != null && state == PROCESS_STATE_TOP) {
currentInfo = app;
break;
}
}
}
return currentInfo;
অ্যান্ড্রয়েড 5.1.1 এবং তার getRunningAppProcesses()
থেকেও উপরে (6.0 মার্শমেলো), মনে হয় এটিও মারা গেছে। এটি এখন আপনার নিজস্ব অ্যাপ্লিকেশন প্যাকেজের একটি তালিকা ফেরত দেয়।
ব্যবহারকারীর স্ট্যাটাসম্যানেজার
এখানে বর্ণিতUsageStatsManager
হিসাবে আমরা নতুন এপিআই ব্যবহার করতে পারি তবে এটি সমস্ত অ্যাপ্লিকেশনগুলিতে কাজ করে না। কিছু সিস্টেম অ্যাপ্লিকেশন একই প্যাকেজটি ফিরিয়ে দেবে
com.google.android.googlequicksearchbox
অ্যাক্সেসিবিলিটি সার্ভিস (ডিসেম্বর 2017: গুগল ব্যবহারের জন্য নিষিদ্ধ হতে যাচ্ছে)
কিছু অ্যাপ্লিকেশন ব্যবহার করে AccessibilityService
( এখানে যেমন দেখেছে ) তবে এর কিছু অসুবিধা রয়েছে।
বর্তমান চলমান অ্যাপ্লিকেশন প্যাকেজ পাওয়ার অন্য কোনও উপায় আছে কি?