4

Androidに既にインストールされているパッケージの値を取得することに興味があります。既にインストールされているパッケージが実行された回数 (閉じて開いた) の値を見つけようとしています。sharepreferences からアプリケーションに対してそれを行うことができることは承知していますが、既に存在するパッケージに対してはどうすればよいですか? PackageManager を使用してインストールされたパッケージのリストを既に持っています。

前もって感謝します

4

4 に答える 4

2
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager packageManager = mContext.getPackageManager(); 
List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);

これを試して。

于 2012-09-12T03:14:21.760 に答える
2

PackageManagerを使用してパッケージ用に取得できるPackageInfoクラスを使用すると、最初のインストール時間と最後の更新時間に関する情報を提供できます。しかし、何回起動されたかなどを知る方法はないようです。システムがその情報を追跡しているのかどうかさえわかりません。http://developer.android.com/reference/android/content/pm/PackageInfo.htmlをチェックしてください

于 2012-09-02T04:07:25.103 に答える
0
         PackageManager manager = getPackageManager();

                Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
                mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

                final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0);
                Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager));

                if (apps != null) {
                    final int count = apps.size();

                    if (mApplications == null) {
                        mApplications = new ArrayList<ApplicationInfo>(count);
                    }
    }
for (int i = 0; i < count; i++) {
                  ApplicationInfo application = new ApplicationInfo();
                ResolveInfo info = apps.get(DEFAULT_KEYS_SEARCH_LOCAL);

                application.title = info.loadLabel(manager);
                application.setActivity(new ComponentName(
                        info.activityInfo.applicationInfo.packageName,
                        info.activityInfo.name),
                        Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                application.icon = info.activityInfo.loadIcon(manager);

              //  mApplications.add(application);

        }

これにより、インストールされているすべてのアプリケーションの数がわかります

于 2012-09-12T11:43:04.650 に答える
0

これは通常のアプリケーションでは不可能だと思います。ただし、ルートアクセス権がある場合は実行できます

dumpsys usagestats 

出力を解析します。

Usagestats Serviceまたは、すでに追跡を行っている を使用することもできます。ただし、これには root アクセスが必要です。

于 2012-09-08T05:49:54.910 に答える