我正在使用新的UsageStatsManager
API 来在 Android 5.0 Lollipop 中获取当前前台应用程序。点击这里查看具体实现。
为了使用此API,用户必须在设置->安全->有权查看使用情况的应用
屏幕中启用该应用程序访问权限。
我使用以下 Intent 将用户直接导航到此设置页面:
startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
现在,我想验证用户是否启用了我的应用程序。
我希望像验证用户是否启用了我的应用程序使用NotificationListenerService
一样这样做,但我不知道String键是什么,即使存在也不知道。
Settings.Secure.getString(contentResolver, "enabled_notification_listeners");
// Tried Settings.ACTION_USAGE_ACCESS_SETTINGS as key but it returns null
Second approach was to query the usage stats and check if it returns results (it returns an empty array when the app is not enabled) and it works most of the times but sometimes it returns 0 results even when my app is enabled.
UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService("usagestats");
long time = System.currentTimeMillis();
List stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time);
if (stats == null || stats.isEmpty()) {
// Usage access is not enabled
}
有没有办法检查我的应用程序是否已启用使用访问权限?