前几天在做一个小程序,是关于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);
}
});
}
}