在Android中利用PkgUsageStats获取app的运行时间时

在Android中利用PkgUsageStats获取app的运行时间时,ComponentName name=applicationInfo.intent.getComponent();这段代码是什么意思,为什么在Eclipse中老是说intent不是一个域

1个回答

public long getTime(ApplicationInfo applicationInfo){

        ComponentName name=applicationInfo.intent.getComponent();

        long useTime;

            try{
                Class<?> ServiceManager=Class.forName("android.os.ServiceManager");

                Method getService=ServiceManager.getMethod("getService",java.lang.String.class);

                Object onRemoteService=getService.invoke(null, "usageStats");


                Class<?> cStub=Class.forName("com.android.internal.app.IUsageStats$Stub");

                Method asInteface=cStub.getMethod("anInteface",android.os.IBinder.class);

                Object oIUsageStats=asInteface.invoke(null, onRemoteService);



                Method getPkgUsageStats=oIUsageStats.getClass().getMethod("getPkgUsageStats",ComponentName.class);

                Object state=getPkgUsageStats.invoke(oIUsageStats, name);

                Class<?> PkgUsageStats=Class.forName("com.android.internal.os.PkgUsageStats");

                //lounchCount=PkgUsageStats.getDeclaredField("lacnchCount").getInt(state);
                useTime=PkgUsageStats.getDeclaredField("usageTime").getInt(state);
                appInfo.setUseTime(useTime);
            }
            catch(Exception e){
                e.printStackTrace();
            }
            return applicationInfo.getUseTime();    
        }   
        这是源码,大神帮我看看
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐