我需要通过 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;
扬帆大鱼
天涯尽头无女友
相关分类