我尝试在更新之前跟踪系统应用程序,并且使用:

public static boolean isSystemApplication(Context ctx, IContent content) {
    android.content.pm.PackageManager pm = ctx.getPackageManager();
    List<android.content.pm.ApplicationInfo> apps = pm.getInstalledApplications(0);
    for (android.content.pm.ApplicationInfo app : apps) {
        if (app.packageName.equals(content.getContentPackage())) {
            return (app.sourceDir.startsWith("/system/app/") && ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP ) != 1));
        }
    }
    return false;
}


但似乎(app.flags和ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)= 1)始终返回true,即使系统应用程序已更新。

最佳答案

如果系统应用程序已更新,则(app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP ) != 0)(app.flags & ApplicationInfo.FLAG_SYSTEM ) != 0)都将返回true。

关于android - 看来ApplicationInfo.FLAG_UPDATED_SYSTEM_APP无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12526184/

10-10 23:09