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

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

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

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

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

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

3 ответа

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

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

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

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

Другие вопросы по тегам