android获取指定文件夹的穿件时间,最近访问时间和最近修改时间

目标

检测android手机常用应用时,可以检测应用在指定位置的文件夹属性,来做辅助判断设备的状态。

代码

import org.json.JSONException;
import org.json.JSONObject;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;

public class Test {
    public static void getFileTime() {
        List<String> apps = Arrays.asList(
                "com.tencent.mm",
                "com.tencent.mobileqq",
                "com.eg.android.AlipayGphone",
                "com.taobao.taobao",
                "com.ss.android.ugc.aweme",
                "com.xunmeng.pinduoduo",
                "com.baidu.searchbox",
                "com.autonavi.minimap",
                "com.tencent.mtt",
                "com.tencent.qqlive",
                "com.jingdong.app.mall",
                "com.sankuai.meituan",
                "cn.wps.moffice_eng",
                "com.qiyi.video",
                "com.sina.weibo",
                "com.smile.gifmaker",
                "com.baidu.BaiduMap",
                "com.kugou.android",
                "com.tmri.app.main",
                "com.youku.phone",
                "com.ss.android.article.news",
                "com.tencent.android.qqdownloader",
                "com.snda.wifilocating",
                "com.tencent.qqmusic",
                "com.wuba",
                "com.alibaba.android.rimet",
                "com.xingin.xhs",
                "com.tencent.news",
                "tv.danmaku.bili",
                "com.kuaishou.nebula",
                "com.UCMobile",
                "com.chinamworld.main",
                "co m.ximalaya.ting.android",
                "com.ss.android.ugc.aweme.lite",
                "com.baidu.netdisk",
                "com.tencent.tmgp.sgame",
                "com.netease.cloudmusic",
                "com.android.bankabc",
                "com.achievo.vipshop",
                "com.tencent. androidqqmail",
                "ctrip.android.view",
                "com.icbc",
                "com.android.email",
                "com.taobao.idlefish",
                "me.ele",
                "com.lemon.lv",
                "com.tencent.karaoke",
                "com.taobao.litetao",
                "com.MobileTicket",
                "com.zhihu.android"
        );
        JSONObject appJSON = new JSONObject();
        for (String pkg : apps) {
            String path = "/storage/emulated/0/Android/data/" + pkg;
            File file = new File(path);
            if (file.exists()) {
                BasicFileAttributes attr = null;
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    try {
                        attr = Files.readAttributes(Paths.get(file.getAbsolutePath()), BasicFileAttributes.class);
                    } catch (IOException exception) {
                        exception.printStackTrace();
                        continue;
                    }
                }
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    FileTime createdAt = attr.creationTime();
                    long creationTime = 0L;
                    if (createdAt != null) {
                        creationTime = createdAt.toMillis();
                    }
                    FileTime lastAccessAt = attr.lastAccessTime();
                    long lastAccessTime = 0l;
                    if (lastAccessAt != null) {
                        lastAccessTime = lastAccessAt.toMillis();
                    }
                    FileTime lastModifiedAt = attr.lastModifiedTime();

                    long lastModifiedTime = 0L;
                    if (lastModifiedAt != null) {
                        lastModifiedTime = lastModifiedAt.toMillis();
                    }

                    JSONObject jsonObject = new JSONObject();
                    try {
                        jsonObject.put("creationTime", creationTime);
                        jsonObject.put("lastAccessTime", lastAccessTime);
                        jsonObject.put("lastModifiedTime", lastModifiedTime);
                        appJSON.put(pkg, jsonObject);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        System.out.println("key:" + appJSON.toString());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值