为了账号安全,请及时绑定邮箱和手机立即绑定

Android:如何检查应用程序是否正在运行

Android:如何检查应用程序是否正在运行

汪汪一只猫 2022-06-15 15:33:48
我需要通过 packageName 检查 - 是否正在运行应用程序。在 v.21 之前,我只是得到正在运行的应用程序的列表并跳舞。但现在它不起作用 - 只返回一个我的应用程序。我知道我需要使用“统计使用”,但找不到完整的例子。我不需要所有这些分析,我需要一个简单的功能bool isRunning(String packageName)如何在没有围绕它跳舞的情况下在新的 Android (>21) 上实现它?更新。code4rox的答案最好。一切正常,谢谢!我使用此代码检查权限:import android.content.pm.PackageManager;import android.content.pm.ApplicationInfo;import android.app.AppOpsManager;import android.util.Log;import  android.provider.Settings;try {            PackageManager packageManager = getContext().getPackageManager();            ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getContext().getPackageName(), 0);            AppOpsManager appOpsManager = (AppOpsManager) getContext().getSystemService(Context.APP_OPS_SERVICE);            int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, applicationInfo.uid, applicationInfo.packageName);            if (!(mode == AppOpsManager.MODE_ALLOWED)) {                Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);                startActivity(intent);            }        } catch (PackageManager.NameNotFoundException e) {}这用于检查应用程序:import android.util.Log;import android.app.usage.UsageStatsManager;import android.app.usage.UsageStats;import java.util.List;import java.util.SortedMap;import java.util.TreeMap;import java.util.ArrayList;
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

出于安全原因,没有任何方法可以让所有正在运行的应用程序处于 API 级别 (>21)。

您可以使用时间间隔访问应用程序使用历史记录和统计信息:天、周、月和年UsageStatsManager

这是官方文档链接

clean master、ccleaner等其他应用程序使用此技术来运行应用程序。

是获取应用程序列表的示例UsageStatsManager

注意:您必须 在使用前授予使用访问权限UsageStatsManager


查看完整回答
反对 回复 2022-06-15
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您可以访问文档。向下滚动到方法部分。其中一些方法需要许可,而其中一些仅用于调试。希望有帮助。



查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 298 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信