屏幕校准程序的需求:
烧系统之后,第一次进入系统要在主界面唧Launcher界面起来之前启动屏幕校准程序。校准成功后以后开机不再启动。
在Launcher之前启动屏幕校准程序很简单,只需要在AndroidManifest.xml里配置下就可以:
<activity android:name=".InitActivity">
<intent-filter android:priority="100">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
注意下蓝色背景的字样,将这个Activity的优先级设高点就可以了。
至于第一次烧写后启动一次,实现起来也很简单。
我给出了一个路径
public static final String filePath ="/data/data/com.android.TsCalibrate/shared_prefs/SETTING_CALIBRATE.xml";
第一次启动去检查下这里的信息,如果没有我们保存的值,则正常启动我们的校准Activity,校准完成之后将我们定义的InitActivity在PackageManager禁用。代码:
private void deleteFromPackageManger() {
// remove this activity from the package manager.
PackageManager pm = getPackageManager();
ComponentName name = new ComponentName(this, InitActivity.class);
pm.setComponentEnabledSetting(name,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
如果已经校准过了,则直接禁用,并不再启动校准Activity。