現象
Androidのバージョンを 5.1.1 へアップデートしたところ、以下のエラーが出るようになりました.
W/ActivityManager﹕ getRunningAppProcesses: caller 10204 does not hold REAL_GET_TASKS; limiting output
実行中のプロセスを取得するために ActivityManager#getRunningAppProcesses
を呼ぶと上記エラーを吐きます.
また、これまではプロセス一覧がが返ってきていましたが、呼び出したプロセスの情報のみが返るようになっています.
原因
Android 5.0 (Lollipop) 以降、他のアプリ情報を取得するためのAPI(ActivityManager#getRecentTasks
など)について、GET_TASKS
パーミッションを与えるだけでは動作しなくなっていたのですが、getRunningAppProcesses
だけは(何故か)動作していました.
これが、Android 5.1.1からいよいよ使用できなくなってしまったようで、ユーザアプリからは上記APIが動作しないようになっているようです.
参考: https://code.google.com/p/android-developer-preview/issues/detail?id=2347
対策
代わりにUsageStatsManagerを使います.
参考: http://qiita.com/kgmyshin/items/35b002e42df2027fb56e