Android在某些首次安装日期安装所有应用程序

Android在某些首次安装日期安装所有应用程序,android,date,installation,Android,Date,Installation,我在手机上有一个包含所有应用程序标签的数组列表 public String[] getAppNames() { String[] apps = {}; String a = ""; PackageManager packManager = getPackageManager(); List<ApplicationInfo> installedApps = packManager .getInstalledApplication

我在手机上有一个包含所有应用程序标签的数组列表

public String[] getAppNames() {
    String[] apps = {};
    String a = "";
    PackageManager packManager = getPackageManager();

    List<ApplicationInfo> installedApps = packManager
            .getInstalledApplications(PackageManager.GET_META_DATA);
    for (ApplicationInfo appInfo : installedApps) {
        a = a + appInfo.loadLabel(packManager) + ",";
        apps = a.split(",");
    }
    return apps;
}
public字符串[]getAppNames(){
字符串[]apps={};
字符串a=“”;
PackageManager packManager=getPackageManager();
List installedApps=打包管理员
.GetInstalledApplication(PackageManager.GET_元数据);
对于(ApplicationInfo appInfo:installedApps){
a=a+appInfo.loadLabel(打包管理器)+“,”;
apps=a.split(“,”);
}
返回应用程序;
}
现在,我想将昨天安装的应用程序中的所有标签添加到一个额外的数组列表中。我该怎么做呢?

中的第二个答案可以帮助您找到日期。如果日期是昨天,请将应用程序包括在列表中。

使用以下代码:

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir;
long installed = new File(appFile).lastModified();

上面的代码有一个问题,在这里返回的时间将在每次更新包时更改。如果它不影响你的moto,那么你必须从这个返回值中找出日期,并与昨天的日期进行比较,如果它匹配,则将其放入另一个数组中。

问题是getPackageInfo中每个应用程序的包名(“package.name”,0)。firstInstallTime;为什么这是个问题?您可以从
ApplicationInfo
对象中获取
packageName
字段。。我没有看到明显的问题。正在寻找类似getPackageName或.loadPackageName的内容。。谢谢你的帮助:)太好了:)未来的提示-进入该类的参考页,搜索你想要的字段(Ctrl+f)。我也尝试了
getPackageName()
,但搜索
packageName
时发现了此字段。lastModified始终是安装日期,并且在更新时不会更改?