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