Вам понадобится фон Service
, который будет проверять активность телефона (приложения на переднем плане) и подсчитывать время их активного/переднего плана.
приложений Список переднего плана
<uses-permission android:name="android.permission.GET_TASKS" />
Вы можете обнаружить в настоящее время на переднем плане приложения с ActivityManager.getRunningAppProcesses()
. Он вернет список RunningAppProcessInfo
записей.
Чтобы определить, какое приложение находится на переднем плане, проверьте RunningAppProcessInfo.importance
== RunningAppProcessInfo.IMPORTANCE_FOREGROUND
.
Сколько времени было потрачено на него
Process.getElapsedCpuTime()
лучше пойти ИМХО.
К сожалению, я не знаю, как получить Process
другое приложение ...
Таким образом, вы могли бы иметь циклическое Service
увеличивающихся потраченное время каждое приложение находится на переднем плане, но это не было бы супер Я боюсь.
Другим способом было бы контролировать себя открытием этих приложений, и когда они покинут его и вернутся к вам, оцените затраченное время на переднем плане в этот момент.
Просто некоторые мысли, у меня нет полного ответа, извините.
Вы имеете в виду, что вам нужно измерить время, потраченное на ** другое ** приложение, которое будет создано вашим зданием? – shkschneider
@shkschneider Да, я хочу измерить, сколько времени пользователь потратил на другие приложения. Если пользователь закончил x минут, то я хочу дать некоторый кредит пользователю. –
Вы можете попробовать прочитать файлы журнала, http://stackoverflow.com/questions/3290936/android-detect-when-other-apps-are-launched – AcidBurn