2015/08/09

Xperia Z3 CompactでのActivityManager#getRunningAppProcesses

Xperia Z3 Compact (Android 5.1.1(ビルド番号 23.4.A.0.546))上でActivityManager#getRunningAppProcesses でプロセス一覧を取得し、一番上にあるプロセス名を取得しようとしたところ、プロセス一覧を取得しようとしているアプリ名しか取得できませんでした。

Android 5.0.2(ビルド番号 23.1.A.1.28)の時は問題なく取得できてたのに。
Androidのバージョンだけで見ると同じNexus5 5.1.1(ビルド番号 LMY48B)で確認してみたところ、こちらは問題なくプロセスの一覧が取得できました。
#Nexus5とXperia Z3 CompactではAndroid 5.1.1のリビジョンが違う?

検索してみたところ
Issue 2347: ActivityManager getRunningAppProcesses not woking
らしい。でもこれはAndroidの次のバージョンMの話だけど動きは同じ。
上記リンク先の#8で書かれてる How to use UsageStatsManager? とこの投稿内にある here on StackOverflow 内での返信 How to get recent tasks on Android “L”? を見ると一番上にあるプロセス名の取得方法が!

ユーザー側で端末の設定(設定 → セキュリティ → 使用履歴にアクセスできるアプリ、でONにする)を行う必要はありますが、How to get recent tasks on Android “L”? の方法で無事一番上にあるプロセス名が取得できました。

2015/08/13 追記
Nexus5をAndroid 5.1.1(ビルド番号 LMY48I)にしたところ、Xperia Z3 Compactと同様にプロセス一覧を取得しようとしているアプリ名しか取得できませんでした。
参考 aaa0fee - platform/frameworks/base - Git at Google