系统默认就有一个app是向导,需要厂商自己实现,那如何设置自己自定义app为向导app?
1 自定义app内activity配置如下:
<activity
android:name="com.vantron.otabackupupdate.MainActivity"
android:excludeFromRecents="true">
<intent-filter android:priority="1">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.SETUP_WIZARD" />
</intent-filter>
</activity>
2将自定义app源码放在packages/apps/目录下编译,在
device/rockchip/rk3368/tablet_5081g_lte/tablet_5081g_lte.mk目录下配置PRODUCT_PACKAGES,编译系统时能打包进去:
PRODUCT_PACKAGES += OtaBackupUpdate
3 将packages/apps/Provision 设置成非SETUP_WIZARD app,直接将配置
整体去掉
4,在自定义app结束前,需要做以下设置,app运行完毕以后,系统会自动卸载app,实现开机只启动一次。
// Add a persistent setting to allow other apps to know the device has been provisioned.
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);
// remove this activity from the package manager.
PackageManager pm = getPackageManager();
ComponentName name = new ComponentName(this, MainActivity.class);
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
this.finish();