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

Java 如何计算在我的android手机上打开任何应用程序的次数?,java,android,Java,Android,我想开发一个android应用程序,它计算我打开另一个应用程序的次数。说它应该算上我打开Whatsapp或Facebook的次数。如何通过另一个android应用程序实现这一点?如何观察android中其他应用程序的活动和行为 首先 1.创建数据库(本地android SQLite) 然后 2.获取设备上所有已安装应用程序的列表。使用Android软件包管理器和getInstalledApplications() PackageManager pm=getPackageManager(); Li

我想开发一个android应用程序,它计算我打开另一个应用程序的次数。说它应该算上我打开Whatsapp或Facebook的次数。如何通过另一个android应用程序实现这一点?如何观察android中其他应用程序的活动和行为

首先 1.创建数据库(
本地android SQLite

然后 2.获取设备上所有已安装应用程序的列表。使用
Android软件包管理器
getInstalledApplications()

PackageManager pm=getPackageManager();
List packages=pm.getinstalledApplication(PackageManager.GET_元数据);
对于(ApplicationInfo packageInfo:packages){
Log.d(“已安装的应用程序”,“已安装的包:“+packageInfo.packageName+”启动活动:“+pm.getLaunchIntentForPackage(packageInfo.packageName));
}
  • 在数据库中保存包名和启动程序活动

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

     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);
        }
    
    ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
    List recentTasks=activityManager.getRecentTasks(Integer.MAX_值,activityManager.RECENT_,不包括_);
    对于(int i=0;i
  • 首先 1.创建数据库(
    本地android SQLite

    然后 2.获取设备上所有已安装应用程序的列表。使用
    Android软件包管理器
    getInstalledApplications()

    PackageManager pm=getPackageManager();
    List packages=pm.getinstalledApplication(PackageManager.GET_元数据);
    对于(ApplicationInfo packageInfo:packages){
    Log.d(“已安装的应用程序”,“已安装的包:“+packageInfo.packageName+”启动活动:“+pm.getLaunchIntentForPackage(packageInfo.packageName));
    }
    
  • 在数据库中保存包名和启动程序活动

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

     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);
        }
    
    ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
    List recentTasks=activityManager.getRecentTasks(Integer.MAX_值,activityManager.RECENT_,不包括_);
    对于(int i=0;i

  • 使用SharedReference计算应用程序的数量。您不能设置侦听器来检查,但是您可以检查应用程序是否打开,以便获取已安装应用程序的列表,然后您可以尝试以下操作:如果您检测到某个应用程序,您将知道该用户以前启动过该应用程序,您可以在数据库中增加一个值使用SharedReference计算应用程序的数量。您不能设置侦听器来检查,但是,您可以检查某个应用程序是否已打开,以便获取已安装应用程序的列表,然后可以尝试以下操作:如果您检测到某个应用程序,您将知道用户过去启动过该应用程序,并且您可以在数据库中增加一个值