android 应用程序使用统计
2012-09-12 12:44
120 查看
Class<?> cServiceManager = Class .forName("android.os.ServiceManager"); Method mGetService = cServiceManager.getMethod("getService", java.lang.String.class); Object oRemoteService = mGetService.invoke(null, "usagestats"); // IUsageStats oIUsageStats = // IUsageStats.Stub.asInterface(oRemoteService) Class<?> cStub = Class .forName("com.android.internal.app.IUsageStats$Stub"); Method mUsageStatsService = cStub.getMethod("asInterface", android.os.IBinder.class); Object oIUsageStats = mUsageStatsService.invoke(null, oRemoteService); // PkgUsageStats[] oPkgUsageStatsArray = // mUsageStatsService.getAllPkgUsageStats(); Class<?> cIUsageStatus = Class .forName("com.android.internal.app.IUsageStats"); Method mGetAllPkgUsageStats = cIUsageStatus.getMethod( "getAllPkgUsageStats", (Class[]) null); Object[] oPkgUsageStatsArray = (Object[]) mGetAllPkgUsageStats .invoke(oIUsageStats, (Object[]) null); System.out.println(oPkgUsageStatsArray); Class<?> cPkgUsageStats = Class .forName("com.android.internal.os.PkgUsageStats"); for (Object pkgUsageStats : oPkgUsageStatsArray) { // get pkgUsageStats.packageName, pkgUsageStats.launchCount, // pkgUsageStats.usageTime String packageName = (String) cPkgUsageStats.getDeclaredField( "packageName").get(pkgUsageStats); int launchCount = cPkgUsageStats .getDeclaredField("launchCount").getInt(pkgUsageStats); long usageTime = cPkgUsageStats.getDeclaredField("usageTime") .getLong(pkgUsageStats); System.out.println(packageName + ":" + launchCount + ":" + usageTime);
这个系统权限不知道怎么添加
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
该方法实验没有通过,说是因为没有上面的这个权限,我把该放在manifest中没有效果,后来网上查了一下说是系统权限,自己不会弄就没有继续测试了
相关文章推荐
- android 应用程序使用统计
- AndroidStudio中使用Jacoco统计Android应用程序代码覆盖率
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- 分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计
- 使用FlowDroid生成Android应用程序的函数调用图
- 使用模型驱动开发来加速 Android 设备及应用程序的交付
- 【转】Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- 使用WakeLock使Android应用程序保持后台唤醒
- 开发Android应用程序来使用硬件访问服务
- 使用WakeLock使Android应用程序保持后台唤醒
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android应用程序使用Google Map (转http://blog.csdn.net/iefreer/archive/2009/09/20/4572879.aspx)
- Android中使用logwrapper来重定向应用程序中的标准输出 _linux console_android init_abdroid stdout err重定向
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
- 使用jQuery Mobile和Phone Gap开发Android应用程序
- android 完全退出应用程序 使用ExitApplication.
- android数据库存储方法(一)---------------SharedPreferences(实例)记录应用程序使用次数(一)
- 使用WakeLock使Android应用程序保持后台唤醒
- Android中获取应用程序(包)的信息-----PackageManager的使用
- 使用 Eclipse PhoneGap 构建 Android 应用程序入门