PalabraAA 2021-11-03 10:54 采纳率: 100%
浏览 41
已结题

如何记录应用最近一次更新时间?(不通过应用市场) 如何过滤系统应用?

如何记录应用最近一次更新时间?(不通过应用市场) 如何过滤系统应用?

通过三元素原理,记录用户自装应用最近一次更新时间点

  • 写回答

2条回答 默认 最新

  • 关外吴三桂 2021-11-03 10:56
    关注

    f ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
    if ((mAppInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
    mAppButtonState = AppButtonStates.FACTORY_RESET;
    mAppButtonText = getText(R.string.app_factory_reset);
    } else {
    if ((mAppInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) == 0) {
    // Hide button if diableClearUserData is set
    mAppButtonState = AppButtonStates.NONE;
    visible = false;
    } else {
    mAppButtonState = AppButtonStates.CLEAR_DATA;
    mAppButtonText = getText(R.string.clear_user_data_text);
    }
    }
    } else {
    mAppButtonState = AppButtonStates.UNINSTALL;
    mAppButtonText = getText(R.string.uninstall_text);
    }

    上面标红的一句,if ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)就是用来判断应用程序是不是系统自带的。这样就可以通过这句来过滤掉系统自带的应用程序,例子如下

    List packs = context.getPackageManager().getInstalledPackages(0);
    int count = packs.size() - 1;
    for (int i = 0; i <= count; i++) {
    PackageInfo p = packs.get(i);

            if (p.versionName == null) { 
                continue; 
            } 
            ApplicationInfo itemInfo = p.applicationInfo; 
            if  ((itemInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) 
                continue; 
          
         ............... 
    
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题