java - 如何计算任何应用程序在我的 android 手机中打开的次数?

标签 java android

我想开发一个 android 应用程序,它可以计算我打开另一个应用程序的次数。说它应该计算我打开 Whatsapp 或可能是 Facebook 的次数。我怎样才能通过另一个android应用程序实现这一点?如何观察android中其他应用程序的 Activity 、行为。

最佳答案

首先 1. 创建数据库(local android SQLite)

然后 2. 获取设备上所有已安装应用程序的列表。使用 Android Package ManagergetInstalledApplications()

PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
    Log.d("Installed Apps", "Installed package :" + packageInfo.packageName + " Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}
  1. 在您的数据库中保存包名称和启动器 Activity

  2. 获取最近启动的应用程序列表并增加您的数据库计数器或您喜欢做的事情

     ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
     List<ActivityManager.RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE,ActivityManager.RECENT_WITH_EXCLUDED);
    
       for (int i = 0; i < recentTasks.size(); i++)
        {
    
            String LocalApp = recentTasks.get(i).baseIntent.toString();
            int indexPackageNameBegin = LocalApp.indexOf("cmp=")+4;
            int indexPackageNameEnd = LocalApp.indexOf("/", indexPackageNameBegin);
            String pckge = LocalApp.substring(indexPackageNameBegin, indexPackageNameEnd);
            Log.d("Executed app", "Application executed : " +pckge);
        }
    

关于java - 如何计算任何应用程序在我的 android 手机中打开的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41082173/

相关文章:

android - AdapterView 不支持 java.lang.UnsupportedOperationException : addView(View, LayoutParams)

java - 如何在 Java 中进行后期绑定(bind)

java - 即使我使用了 AssetManager,我是否也需要处理我所有的东西?

java - 如何在 Guava 中迭代

java - Scala 在 Android 上的性能好吗? (2011 年 6 月)

android - 在状态 "selected"上更改 EditText 的布局

android - 扩展 viewpager 以包含导航指示器

java - 如何在 android 中压缩 Pixmap/使用 cim 文件?

java - 代号一返回上一表格命令错误

android - 如何使用 FirebaseIndexRecyclerAdapter 向下滚动加载更多数据