gpt4 book ai didi

Android UsageStatsManager : Get a list of currently running apps on phone

转载 作者:太空狗 更新时间:2023-10-29 14:40:00 28 4
gpt4 key购买 nike

我正在尝试获取手机上当前正在运行的应用程序列表。这是我正在使用的代码:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager)this.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 10000*10000, time);
if (appList != null && appList.size() == 0) {
Log.d("Executed app", "######### NO APP FOUND ##########" );
}
if (appList != null && appList.size() > 0) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
Log.d("Executed app", "usage stats executed : " +usageStats.getPackageName() + "\t\t ID: ");
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
String currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();

}
}
}

这里我也设置了权限:

<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />

它不会检测任何应用程序使用情况。我在 stackoverflow 上尝试了一些其他的东西,但似乎没有任何效果。我什至在某处读到,应用程序监控手机上运行的其他应用程序的能力已在较新的手机中完全删除。非常感谢任何帮助!

最佳答案

问题是你的应用没有android:get_usage_stats的系统权限。

您可以使用下面的代码来检查您是否有权限:

public static boolean needPermissionForBlocking(Context context){
try {
PackageManager packageManager = context.getPackageManager();
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0);
AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, applicationInfo.uid, applicationInfo.packageName);
return (mode != AppOpsManager.MODE_ALLOWED);
} catch (PackageManager.NameNotFoundException e) {
return true;
}
}

如果您没有权限,则用户必须启用此权限,方法是转到“设置”->“安全”->“具有使用权限的应用”,然后添加您的应用程序。然后您的代码应该可以正常工作。

关于Android UsageStatsManager : Get a list of currently running apps on phone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49743206/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com