2011-05-06 5 views
20

내가 찾은 Android 용 앱 보관함 프로그램에 만족스럽지 않고 자신 만의 Android 앱 잠금 프로그램을 사용하고 싶지만 실제 잠금 기능을 구현하는 방법을 알아 내려는 데 문제가 있습니다. Android 용 앱 보관함을 구현하는 방법은 무엇입니까?Android에서 앱 보관함을 구현하는 방법은 무엇인가요?

이 두 가지 문제가 있습니다 : 보통 startActivity를을 (호출 런처에서) 또는 마켓 앱 (나는 방송 의도에 대해 이야기하고 있지 않다 출시 광고에서 텐트를 감지

  1. - 내가 필요 명시 적 활동 의도 처리). 나는 모든 본 사물함 애플 리케이션을위한

    • 권한은이 "시스템 로그 파일 읽기"및/또는 앱 출시를 찾기 위해 폴링을 사용할 수 있습니다 제안하는 "실행중인 응용 프로그램을 검색합니다." 나는 이것을 할 수 있다고 생각하지만 가능한 한 더 나은 해결책을 찾고 싶습니다.
  2. 잠금 된 앱이 인 텐트를 처리하는 것을 방지합니다. 패스 코드가 입력 될 때까지 잠긴 앱이 실행되는 것을 허용하지 않기를 원합니다. 시작될 때 어떤 일을 할지를 말하기가 불가능하기 때문입니다. 사이에 아무것도, 응용 프로그램 로커의 의도와 함께 다시는 잠긴 응용 프로그램의 의도와 함께 첫 번째 (10-20ms으로 구분 :

    • 내 현재 응용 프로그램 사물함을 실행, 로그 캣은 "활동을 시작 ActivityManager"표시). 올바른 암호를 입력하면 "ActivityManager : moveTaskToBack"이 표시됩니다.
    • 나는 현재의 앱 보관함을 사용하여 앱이 잠겨 있고 올바른 비밀번호를 입력하지 않은 경우 아무런 Activity 콜백도 호출되지 않는다는 것을 입증하는 테스트 앱을 시험해 보았습니다. 그래서 앱 시작을 방해하고있는 것처럼 보입니다 (그러나 어떻게 알지는 못합니다).
    • ActivityManager.killBackgroundProcesses()를 사용하여 앱을 중지 할 수는 있지만 앱이 "종료"될 때까지 이미 실행되지 않았다는 보장은 없습니다.
    • PackageManager.setApplicationEnabledSetting()을 사용하여 앱이 인스턴스화되는 것을 방지 할 수는 있지만 이미 실행중인 앱을 처리하지는 않습니다 (새 인 텐트 또는 앱을 처리 할 수 ​​없어야 함). 전경에 오십시오.) killBackgroundProcesses()를 사용하여 실행중인 모든 잠긴 프로세스를 중지하고 다시 인스턴스화해야 할 수도 있습니다. 하지만 다른 앱이 사용 설정을 엉망으로 만들고 잠금을 해제 할 수 있기 때문에이 방법이 마음에 들지 않습니다.
    • 최적의 방법으로, 시스템은 모든 인 텐트를 검사를 위해 내 앱으로 보내고 중지하거나 통과하도록 허용하지만, 가능하지는 않습니다. (최소한 런처에서 활동을 시작하려는 명백한 의도가 아닙니다.).

는 사람이 어떻게 구현되는지 응용 프로그램 사물함 애플 리케이션을 알고, 또는 그것을 할 수있는 방법에 대한 밝은 아이디어가 있습니까?

+5

"앱 보관함"에 사용되는 기술은 보안 허점입니다. 나는 그들을 폐쇄 시키려고 노력하고있다. – CommonsWare

+0

의도 레벨 잠금 메커니즘과 함께 숨겨진 활동의 실행 프로그램을 숨기는 방법은 무엇입니까? – aProgrammer

+0

@CommonsWare 앱 보관함 앱의 모든 참조는 무엇입니까? – nida

답변

관련 문제