2010-08-18 2 views
13

ОК, так что не совсем уверен, что это возможно ...Android - Как перехватить «Установить приложение» пристальный

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

1) APK скачивается с сайта и рынка запускает установщик

2) Установка кнопка нажата на рынке андроид

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

ответ

10

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

+5

Я добавил PACKAGE_REMOVED и тег . Как только они были в моем манифесте, мое приложение правильно сообщило, когда какое-либо приложение было установлено или удалено. См. Http://groups.google.com/group/android-developers/browse_thread/thread/14589d5e0761c056 и http://developer.android.com/guide/appendix/faq/framework.html#7 – prodaea

5

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

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

Смежные вопросы