2011-08-08 3 views
0

현재 개발중인 응용 프로그램은 사용자가 현재 어떤 방식 으로든 어떤 응용 프로그램과 상호 작용하고 있는지 (그리고 여기에 악의적 인 의도가 없음) 알아야합니다. 즉, 항상 실행중인 앱 프로세스 및 서비스가 많지만 실제로는 일부만이 실제로 인스턴스화되거나 사용자가 모니터링합니다.Android : 응용 프로그램의인지 가능성

사용자가 실행중인 앱 프로세스 만 처리하고 싶습니다. 예를 들어 전경의 현재 앱과 배경에서 재생중인 음악 일 수 있습니다. 그러나 항상 실행중인 SetCPU,지도 및 키보드 서비스는 무시하고 싶습니다.

이 정보의 대부분은 특정 응용 프로그램의 RunningAppProcessInfo 인스턴스와 그 내에서 필드를 통해 확인할 수 있습니다. 포 그라운드에서 응용 프로그램의 경우 필드는 IMPORTANCE_FOREGROUND으로 설정됩니다. 내 다른 조건 (음악 예제 1)에는 약간의 문제가 있습니다.이 시나리오를 완벽하게 처리 할 수있는 IMPORTANCE_PERCEPTIBLE 상수가 있지만 API 9 이상 (Gingerbread, 효과적으로)에만 해당됩니다. 안드로이드 소스를 정독 한 후에,이 특정 값은 안드로이드 OS에서 매우 낮은 레벨로 설정되어 있기 때문에 쉽게 다시 생성 할 수있는 것이 아닙니다.

거대한 텍스트 벽 뒤에 내 질문은 ...이 문제를 해결하려면 어떻게해야합니까? 나는 유순 한 서비스에서 뮤직 플레이어 (나는 단지 내가 생각할 수있는 유일한 예일 뿐이다)를 구별 할 수 있어야하지만 동시에 내 앱을 진저 브레드를 실행하는 사람들에게 강요 할 여유가 없다. 할 개발자는 무엇입니까?!

답변

0

root가 아닌 사용자도 가능하지만 포어 그라운드에 보관중인 응용 프로그램을 추적 할 수 있는지 확실하지 않습니다. 그런 다음 응용 프로그램에 있던 모든 프로세스와 서비스가 사용자에게 중요하다고 안전하게 가정 할 수 있습니다.

많은 수의 응용 프로그램이 백그라운드에서 팝업됩니다 (예 :지도가 때때로 이것을 수행함). 사용자가 앱을 열어 본 적이 없다면 앱이 마음에 들지 않는다고 생각할 수 있으며 해당 서비스를 무시 된 것으로 표시 할 수 있습니다.

또한 응용 프로그램의 무게를 달 수도 있습니다. 사용자가 소비 한 시간의 비율로 말하십시오. 그런 다음 특정 가중치 아래로 떨어지는 앱은 이제 무시됩니다.

+0

예 ... 저는 성취하려는 것을 구현하기 위해 비틀 거림이 없다는 결론을 얻었으므로이 배경에 해당하는 선택된 애플리케이션의 경우 사용자에게 경고 할 것입니다. - 그러나 적극적으로 사용되는 시나리오에서 내가 생산하는 것은 비뚤어 질 수 있습니다. 그러나 나는 어느 정도 여유가 있어도 앱을 완전히 무시하지 않기 위해 아이디어를 확실히 고려할 것입니다. –