使用Android系统自带的应用统计

  前几天在做一个小程序,是关于Android如何来统计应用使用的次数以及使用了多长时间。后来在网上查了一些相关资料,终于解决了。

    其实很简单。这是手机中自带的功能,不用同时按下什么组合按键,而是在拨号界面进行拨号即可。点击位于系统主屏的Dialer进入拨号界面,输入“*#*#4636#*#*”(不加引号)即可进入工程测试模式。这时可以看到出现了Testing的界面,包含了Phone information、Battery information、Battery history、Usage statistics四个选项,如下图,如果需要查看程序的历史运行时间,直接点击最后一项Usage statistics系统会列出一个列表信息就是各个程序的历史运行时间
这时LogCat中会打印以下信息:

因些我们可以看到Activity的 包名:com.android.settings  类名:UsageStates

这样我们就可以写一小程序来调用该程序了。



具体代码如下:

main.xml



view plain

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        > 
        <Button 
            android:id="@+id/button" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="应用使用统计" 
        /> 
        
    </LinearLayout> 





ActivityMain.java

view plain

    public class ActivityMain extends Activity { 
        private Button button; 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
             
            button = (Button) findViewById(R.id.button); 
             
            button.setOnClickListener(new Button.OnClickListener(){ 
                @Override 
                public void onClick(View v) { 
                    Intent intent = new Intent(Intent.ACTION_MAIN); 
                    intent.setComponent(new ComponentName("com.android.settings","com.android.settings.UsageStats")); 
                    //intent.setClassName("com.android.settings", "UsageStats"); 
                    startActivity(intent); 
                } 
                 
            }); 
             
        } 
    }

 

你可能感兴趣的:(android)