android: обнаружить переустановку приложения из кода приложения

Есть ли способ определить из кода приложения, когда оно переустанавливается.

Я видел, что обновление приложения с рынка можно обнаружить, прослушивая событие PACKAGE_REPLACED в широковещательном приемнике. Но эти события не доставляются в приложение, если приложение переустанавливается из редактора (eclipse).

Мое требование состоит в том, что я отключаю компонент (активность Launcher). Установка приложения завершится ошибкой, если оно не включено. ТАК каждый раз перед переустановкой я хочу включить этот компонент.

Я говорю о переустановке перед публикацией в маркете. При разработке каждый раз, когда я переустанавливаю приложение, чтобы проверить некоторые изменения, я хочу обнаружить это в своем приложении и включить компонент.


person png    schedule 02.05.2012    source источник
comment
считается ли установка точно такого же файла переустановкой?   -  person lenik    schedule 02.05.2012
comment
не могли бы вы быть более явным? я не понял твой вопрос   -  person png    schedule 02.05.2012
comment
если я установлю точно такой же файл .apk, который содержит точно такое же содержимое, вы считаете это переустановкой или нет?   -  person lenik    schedule 02.05.2012
comment
Для меня это может быть тот же apk или модифицированный. я отредактировал свой вопрос   -  person png    schedule 02.05.2012


Ответы (1)


На своем примере я увидел, что следующие события будут транслироваться при переустановке приложения из eclipse.

<intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED"/>
        <action android:name="android.intent.action.PACKAGE_REPLACED"/>
             </intent-filter>

Я определил широковещательный приемник для этих действий, и из onreceive я могу включить свой компонент.

person png    schedule 06.05.2012