0
我創建了一個應用程序,用於偵聽手機上最後安裝的應用程序,並在安裝新應用程序時通知我。現在它正確地通知我上次安裝的應用程序,但它也會在更新任何應用程序時通知我。 有誰知道如何只聽最後安裝的應用程序,而不是聽應用程序何時通過更新?廣播接收器聆聽上次安裝的應用程序
這裏是我的代碼:
public class NewInstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("tag_name", "NewInstallReceiver" + intent.getAction());
final PackageManager pm = context.getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(intent.getData().getSchemeSpecificPart(), 0);
Log.d("tag_name", "Application Info" + ai);
} catch (final PackageManager.NameNotFoundException e) {
ai = null;
}
List<PackageInfo> packages = pm.getInstalledPackages(PackageManager.GET_META_DATA);
Collections.sort(packages, new Comparator<PackageInfo>() {
@Override
public int compare(PackageInfo p1, PackageInfo p2) {
return Long.toString(p2.firstInstallTime).compareTo(Long.toString(p1.firstInstallTime));
}
});
}
}
我的意圖過濾器廣播接收器
<receiver android:name="com.example.natalie.listener.NewInstallReceiver">
<intent-filter android:priority="100">
<action
android:name="android.intent.action.PACKAGE_INSTALL"/>
<action
android:name="android.intent.action.PACKAGE_ADDED"/>
<action
android:name="android.intent.action.PACKAGE_DATA_CLEARED"/>
<action
android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
你在聽什麼動作? – jaibatrik
@jaibatrik目前,當我收到包信息「ai」時,它正在獲取(1)新安裝的應用程序的包信息和(2)剛更新的任何應用程序。我只想獲取上次安裝的應用程序的軟件包信息,而不是更新的應用程序。 – Natalie
「NewInstallReceiver」的意圖過濾器是什麼? – jaibatrik