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 для более подробного объяснения.