你可能知道,自从 Android 5 推出以来,访问设备的最近任务(使用统计信息)需要用户手动启用此功能(设置->安全性->使用情况访问)。
我的应用程序会检查设备是否使用 Android 5,如果是,则为用户提供打开设置屏幕以启用使用访问的可能性:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivityForResult(intent, 12345);
在Samsung设备上运行Android 5时,当我执行上面显示的代码行时,出现了以下错误:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.USAGE_ACCESS_SETTINGS }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499)
at android.app.Activity.startActivityForResult(Activity.java:3913)
看起来并没有实现Settings.ACTION_USAGE_ACCESS_SETTINGS操作,这很奇怪,因为如果您进入设置,启用应用程序访问此使用情况统计信息的选项就在那里...
有没有想法如何针对这个特定情况解决这个问题?
I/ActivityManager(18815): START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings (has extras)} from pid 12226 D/audio_hw_primary(18477): select_devices: out_snd_device(2: speaker) in_snd_device(0: ) D/SubSettings(12226): Launching fragment com.android.settings.OwnerInfoSettings
),这样可以创建一个打开精确页面的Intent。 - ForceI/ActivityManager: START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings (has extras)} from uid 1000 on display 0 D/SubSettings: Launching fragment com.android.settings.UsageAccessSettings D/SettingsPreferenceFragment: intent.hasExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT : true D/SettingsPreferenceFragment: fragmentName : com.android.settings.UsageAccessSettings I/ActivityManager: Displayed com.android.settings/.SubSettings: +145ms
- Sam