Androidに既にインストールされているパッケージの値を取得することに興味があります。既にインストールされているパッケージが実行された回数 (閉じて開いた) の値を見つけようとしています。sharepreferences からアプリケーションに対してそれを行うことができることは承知していますが、既に存在するパッケージに対してはどうすればよいですか? PackageManager を使用してインストールされたパッケージのリストを既に持っています。
前もって感謝します
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager packageManager = mContext.getPackageManager();
List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);
これを試して。
PackageManagerを使用してパッケージ用に取得できるPackageInfoクラスを使用すると、最初のインストール時間と最後の更新時間に関する情報を提供できます。しかし、何回起動されたかなどを知る方法はないようです。システムがその情報を追跡しているのかどうかさえわかりません。http://developer.android.com/reference/android/content/pm/PackageInfo.htmlをチェックしてください
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);
}
これにより、インストールされているすべてのアプリケーションの数がわかります
これは通常のアプリケーションでは不可能だと思います。ただし、ルートアクセス権がある場合は実行できます
dumpsys usagestats
出力を解析します。
Usagestats Service
または、すでに追跡を行っている を使用することもできます。ただし、これには root アクセスが必要です。