• 监听Google Player下载并获取包名等信息


    一、解决思路

    通过监听ContentObserver监听下载路径content://downloads

    二、具体步骤

    1 设置监听器

        context.getContentResolver()
            .registerContentObserver(Uri.parse("content://downloads"), true, new ContentObserver() {
                @Override
                public void onChange(boolean selfChange, Uri uri) {
                    super.onChange(selfChange, uri);
                    parseData(uri);
                }
            });
    

    2 数据解析

    • Uri过滤
        private void parseData(Uri uri) {
            List<String> segments = uri.getPathSegments();
            if (segments != null && segments.size() > 1) {
                String segment = (String) segments.get(1);
                synchronized (this.pathSegments) {
                    if (this.pathSegments.contains(segment)) {
                        return;
                    }
                    this.pathSegments.add(segment);
                }
    
                obtainAppInfo(segment);
            }
        }
    
    • 应用信息获取:
        private void obtainAppInfo(String segment){
            ...
            cursor = queryDownloadPkg(segment);
            if (cursor == null || cursor.getColumnCount() < 15) {
                return;
            }
    
            cursor.moveToNext();
            String marketName = cursor.getString(9); // 应用市场包名
            String appLink = cursor.getString(15); // 下载应用的包名链接
            String appName = cursor.getString(20); //获取应用名称
            ...
        }
    
        private Cursor queryDownloadPkg(String segment) {
            return this.context.getContentResolver()
                    .query(Uri.parse("content://downloads/public_downloads/" + segment),
                            (String[]) null, (String) null, (String[]) null, (String) null);
        }
    
  • 相关阅读:
    Luogu4433:[COCI2009-2010#1] ALADIN(类欧几里德算法)
    Bzoj4766: 文艺计算姬(Matrix-tree/prufer)
    Bzoj5019: [Snoi2017]遗失的答案
    [HAOI2009]逆序对数列(加强)
    CF850F Rainbow Balls
    Luogu4887 第十四分块(前体)
    Luogu2483 [SDOI2010]魔法猪学院(可并堆)
    导数积分表
    Bzoj2395: [Balkan 2011]Timeismoney(最小乘积生成树)
    Min_25筛
  • 原文地址:https://www.cnblogs.com/diffx/p/9541346.html
Copyright © 2020-2023  润新知