Android - Как перехватить намерение «Установить приложение» - PullRequest
13 голосов
/ 18 августа 2010

ОК, поэтому не совсем уверен, что это возможно ...

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

1) APK загружается из Интернета, и маркет запускает установщик

2) На андроид маркете нажимается кнопка установки

Можно ли перехватывать и запрашивать эти события, или Google заблокировал эти вещи довольнонаглухо?

Ответы [ 3 ]

10 голосов
/ 10 сентября 2010

Это не ответ сам по себе, но я не могу найти здесь никакого инструмента для комментирования. Сожалею. У меня тоже есть эта проблема. Я хотел бы иметь возможность обнаруживать новые установки приложений. Я знаю, что это возможно - например, приложение Apps на SD публикует уведомление при установке нового приложения, которое при нажатии открывает диалоговое окно для перемещения этого нового приложения на SD-карту. Пока что все, что я смог понять, так: manifest.xml:

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

IntentReciever.java:

public class IntentReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    context.startService(new Intent(context, YourService.class));
  }
}

Затем создается YourService и вызывает onCreate (), а затем onStartCommand (). Однако я не смог отладить это или успешно отобразить какие-либо уведомления из класса обслуживания, поэтому я не совсем уверен, что это работает. Я получил это, чтобы работать для других приемников, таких как android.intent.action.BOOT_COMPLETED.

5 голосов
/ 26 сентября 2010

Используя BroadcastReceiver, вы можете отфильтровать намерение android.intent.action.PACKAGE_ADDED.Однако это будет только после двух описанных вами действий, а не до.И это не остановит или не прервет установку.

AFAIK, нет никакого способа сделать что-либо до или прервать Маркет.А потом мы даже говорим о другом приложении, которое, разумеется, устанавливается.

1 голос
/ 29 января 2013

Вы можете написать свой собственный установщик для Android-приложения, перейдите по этой ссылке https://github.com/android-enhancement/android-alt-installer для более подробного объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...