1

セキュリティ上の理由から、ユーザーの行動をプロファイリングするアプリを開発しています。このスニペットを使用して、実行中のデバイスのフォアグラウンドですべてのサービスを検出し、Android OS 4.4それらをリストに収集するサービスを作成しました。

List<ActivityManager.RunningServiceInfo> l = activityManager.getRunningServices(50);
Iterator<ActivityManager.RunningServiceInfo> i = l.iterator();
while (i.hasNext()) {
    ActivityManager.RunningServiceInfo runningServiceInfo = (ActivityManager.RunningServiceInfo) i.next();
    if (runningServiceInfo.foreground) {
             newList.add(runningServiceInfo.service.getClassName());
    }
}

これをデバイスで一度試してみたところ、このSDKバージョン以降で構築された他のアプリAndroid OS 5.0など、フォアグラウンドでサービスが検出されないことに気付きました。runtastic's service foreground新しいフォアグラウンド サービス ポリシーに依存する可能性はありますか?

4

1 に答える 1

0

してみてください:

String topActivityName = "";
 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
            List<ActivityManager.RunningAppProcessInfo> processInfos = manager.getRunningAppProcesses();
            if (processInfos == null || processInfos.isEmpty()) {
                isRunningInForeground = false;
            }
                topActivityName = processInfos.get(0).processName;
         }
于 2016-06-17T07:21:43.023 に答える