Application을 설치(Install), 삭제(Uninstall), 업데이트(Update)를 할 경우 아래와 같은 Action의 Broadcast 이벤트가 발생합니다.
PACKAGE_ADDED
PACKAGE_REMOVED
PACKAGE_REPLACED
하지만 위 Action을 Intent filter에 등록하고 Receiver에서 이벤트를 받을려고 해도 이벤트가 받아지지 않습니다. 그렇다고 추가로 Permission이 필요한 것도 아닙니다.
위 Action들을 처리할 Scheme가 등록이 되지 않아서 그런데요. 위 Action들이 필요로 하는 Scheme를 아래와 같이 등록하면 Receiver에서 이벤트를 받을 수 있습니다.
<intent-filter>
<action android:value=”android.intent.action.PACKAGE_ADDED” />
<action android:value=”android.intent.action.PACKAGE_REMOVED” />
<action android:value=”android.intent.action.PACKAGE_REPLACED” />
<scheme android:value=”package” />
</intent-filter>
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
filter.addDataScheme(”package”);