Android - Как перехватить намерение "Установить приложение"

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

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

1) APK загружается с веб-сайта и запускает программу установки на рынок

2) Кнопка установки нажата на рынке Android.

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

Ответ 1

Это не ответ сам по себе, но я не могу найти инструмент комментирования здесь. Сожалею. У меня тоже такая проблема. Я хотел бы иметь возможность обнаруживать новые установки приложений. Я знаю, что это возможно - например, приложение Apps to 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.

Ответ 2

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

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

Ответ 3

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