編輯:管理解決它。創建一個新項目,清除應用程序數據,然後卸載它,重新安裝它,它神奇地工作。謝謝您的幫助。檢測應用安裝
我試圖檢測應用何時安裝,但我不太確定我要出錯的位置。我在這裏查了幾個問題,但我似乎無法弄清楚。我對android非常陌生,所以我可能錯過了一些明顯的東西。這是我所擁有的測試案例。
我將它安裝到了我的手機,並且過程和服務顯示爲在設置中運行。然後,我從Play商店下載應用程序,檢查logcat,並且應用程序中沒有任何內容。
任何幫助我去哪裏錯了?謝謝。
編輯:
用它打的多了一些之後,我有一些新的例子測試代碼。安裝新包時,onReceive方法不會觸發。然而,當我測試了一些東西的時候,我在BroadcastReceiver類中添加了一個構造函數,並且每次安裝包時構造函數都會觸發。所以,它似乎正在接受意圖,但onReceive內部的日誌似乎從未打印出來。有任何想法嗎?
public class InstallReceiver extends BroadcastReceiver {
public InstallReceiver()
{
//This log will display in the logcat
Log.d("InstallReceiver", "InstallReceiver constructor called.");
}
@Override
public void onReceive(Context context, Intent intent) {
//This log never displays if the constructor is in or commented out
Log.d("InstallReceiver", "Install detected.");
}
}
<receiver android:name=".InstallReceiver">
<intent-filter >
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
除非我誤解了文檔,這是它:http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_ADDED – Lucas