3

更新する前にシステムアプリを追跡しようとしましたが、次を使用します。

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 を返すようです。

4

1 に答える 1

2

システムアプリケーションに更新がある場合、とは両方とも(app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP ) != 0)true(app.flags & ApplicationInfo.FLAG_SYSTEM ) != 0)を返します。

于 2012-11-12T06:47:48.663 に答える