2010-08-18 31 views
13

確定,所以不能完全肯定這是可能的...Android的 - 如何攔截「安裝應用程序的意圖

但是,試圖寫一個應用程序,以便之前任何下列活動是我可以運行一些代碼執行。

1)APK是從網絡和市場下載啓動安裝程序

2)安裝按鈕被按下的Android市場

上是否有可能攔截並提示這些事件,或已谷歌鎖定的東西下來相當緊張?

回答

10

這不是一個答案本身,但我在這裏找不到任何評論工具。抱歉。 我也有這個問題。我希望能夠檢測到新的應用程序安裝。我知道這是可能的 - 例如,應用程序到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 2010-09-10 15:59:42

5

使用BroadcastReceiver可以過濾android.intent.action.PACKAGE_ADDED意圖。但是,這隻會在你描述的兩個行動之後,而不是之前。它不會停止或中斷安裝。

AFAIK之前無法做任何事情或打斷市場。然後我們甚至在談論另一個應用程序,而不是正在安裝的應用程序。

相關問題