안드로이드 앱 설치/업데이트시 서비스 시작 관련 질문 입니다.

조회수 2286회

안드로이드 개발도중 막히는 부분이 있어 이렇게 질문드립니다.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_ADDED" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_INSTALL" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />

  <receiver
        android:name=".BCReceiver"
        android:enabled="false"
        android:exported="false">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.ACTION_SHUTDOWN" />

            <action android:name="android.intent.action.PACKAGE_ADDED"  />
            <action android:name="android.intent.action.PACKAGE_CHANGED" />
            <action android:name="android.intent.action.PACKAGE_INSTALL" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>

위에 처럼 receiver 를 추가하고 앱 설치 삭제를 테스트하고 있는데 부팅 관련해서는 잘 작동하는데 앱 설치 업데이트 이런 부분은 동작을 하지 않아서 이것 저곳 찾아봐도 딱히 답을 찾을수 없어 이렇게 질문을 남겨요.. 안드로이드 버전은 5.1.1(SDK 22) 이며 BroadcastReceiver 의 onReceive에 받자 마자 로그를 남겨도 부팅은 종료 등은 이벤트가 발생하는데 나머지는 발생하지 않습니다. 도움 부탁드려요..

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 특별한 이유가 없다면 브로드캐스트 리시버의 enabled, exported 속성을 true로 설정하시기 바랍니다. exported가 false인 경우, 앱의 외부에서 발생하는 메시지를 수신할 수 없게 됩니다. 두 설정을 true로 변경하신 후 테스트 해보세요.

    패키지 설치, 삭제, 업데이트와 관련해서는 AOSP의 런처 소스코드를 살펴보는 것이 도움이 됩니다. 아래 링크를 참고하세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 갑사합니다. enabled, exported 는 true 에서 안되서 false 로 변경한거고요ㅠ 일단 참고 링크 확인해보겠습니다^^ 알 수 없는 사용자 2017.3.20 11:12

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)