특정 어플이 실행되면 진짜 종료는 아니더라도 비슷한 효과를 줄 수 없을까요?
조회수 4277회
아래에서 앱잠금 어플을 만드려하고 있는 대학생입니다.
좋은 답변을 많이 해주셔서 특정 앱이 실행되는 이벤트를 뺏어오는 것은 상당히 어렵다는 것을 알게되었습니다.
하여 대체할 수 있는 방법이 무엇이 있을지 생각해보았는데
일단 실행시킨 후 해당 앱이면 내가 만든 앱이 따라 켜진 후 내 앱의 액티비티가 스크린에 보이기, 내 앱을 끄면 해당 앱도 같이 꺼지기
일단 실행시킨 후 해당 앱에서 터치 등의 동작이 한번 더 이루어지면 1번과 같이 액티비티 띄우기
일단 실행시킨 후 해당 앱이면 계속 onStop으로 보내기
실행의 우선권을 뺏는 것이 어렵다면 실행을 일단 시킨 후 막을 방법에 대해 생각을 해보았습니다. 어떤 방법이 가장 현실적일지 조언해주시면 다시 한번 정말 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
앱잠금 앱이라하면 https://play.google.com/store/apps/details?id=com.domobile.applock 이런 앱을 말씀하시는건가요? 마켓에서 다운받아서 테스트해보니 앱잠금이 잘 동작하네요.
이런것을 구현하시려는거라면...(혹시 제가 잘못이해한것이라면 알려주세요.)
AccessibilityService 를 이용해보세요.
AccessibilityService를 이용하려면 AndroidManifest에는 아래와 같은 권한이 필요합니다.
<application> <service android:label="@string/accessibility_service_name" android:name=".WindowChangeDetectingService" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService"/> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityservice"/> </service> </application>
위와같은 권한이 포함되면 사용자는 설정에서 접근성 권한을 켜줘야 동작합니다. 사용자가 접근성권한을 켜면 앱들이 실행되거나 변화가 있을때 AccessibilityEvent 를 받을 수 있습니다.
public class MyAccessibilityService extends AccessibilityService implements OnInitListener { private static final String LOG_TAG = "onAccessibilityEvent"; @Override public void onServiceConnected() { } @Override public void onAccessibilityEvent(AccessibilityEvent event) { //어느앱이던지 앱이 실행되면 여기로 무조건 AccessibilityEvent가 들어옵니다. 여기서 해당앱인지 체크를 하고 앱이 맞으면 내가 설정한 앱을 띄워주면 되지 않을까요? AccessibilityNodeInfo source = event.getSource(); if (source != null && source.getText() != null) { Log.i(LOG_TAG, source.toString()); Log.i(LOG_TAG, source.getText().toString()); } } @Override public void onInterrupt() { /* do nothing */ } @Override public void onInit(int status) { } @Override public void onDestroy() { super.onDestroy(); } @Override protected boolean onKeyEvent(KeyEvent event) { return false; } }
위와같은 방법으로 해보면 되지 않을까 싶어요. Acceeibility에 관한 간단한 예제소스를 참고해보세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
- 와 이런 서비스가 있었군요!!!! 정성스런 답변에 정말 진심으로 감사드립니다. 정말 아쉽게도 프로젝트 아이템을 잠금화면에서 문제를 풀어 잠금해제할 수 있는 앱으로 바꾸었습니다ㅠㅠ 그렇지만 답변해주신 내용 꼭 기억해두었다가 소중히 사용하도록 하겠습니다. 감사합니다. 알 수 없는 사용자 2016.4.9 01:37
-
댓글 입력