Android设置应用为默认桌面应用
要设置一应用为桌面应用,且重启开机时不弹出选择弹窗,直接默认非原系统应用。
实现方法:实现方法一共两种:
读取当前有多少应用是桌面应用,在开机启动时,匹配所需应用为默认应用。直接把所需应用设置为系统桌面应用。前一种方法,可以实现系统内多个桌面应用切换,当不想用第三方应用时,可以从设置中切换回原生桌面应用。第二种方法就比较绝,相当于直接把第三方应用当作系统桌面应用,但是若该应用出BUG时,桌面就不能启动,因为桌面就是该应用。
第一种方法实现非常繁琐,第二种方法实现较为简单,所以本方法采用第二种方法。
具体实现步骤:1、APK源码中设置应用为桌面应用只需APK的AndroidMainfest.xml中修改如下即可:
修改后即可实现如下效果:
但是,以上修改在每次开机时还会弹出此框,所以需要对Android源码加以修改。
2、Android源码中设置应用为系统预装应用在T:CodeRK3399PRO_HDMI_ANDROID8vendor ockchipcommonapps文件夹下建立一文件夹,名称为EV_WebViewTest,在该文件夹下放入APK文件,重命名为EV_WebViewTest.apk,并建立一个Android.mk文件,文件内容如下:
# EV_WebViewTestLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := EV_WebViewTestLOCAL_MODULE_CLASS := APPSLOCAL_MODULE_TAGS := optionalLOCAL_BUILT_MODULE_STEM := package.apkLOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)#LOCAL_PRIVILEGED_MODULE :=LOCAL_CERTIFICATE := PRESIGNEDLOCAL_SRC_FILES := $(LOCAL_MODULE).apk#LOCAL_REQUIRED_MODULES :=#LOCAL_PREBUILT_JNI_LIBS :=include $(BUILD_PREBUILT)并在T:CodeRK3399PRO_HDMI_ANDROID8vendor ockchipcommonappsapps.mk的文件内添加以下代码:
PRODUCT_PACKAGES += EV_WebViewTest这样编译完固件烧录后,就会在系统内多了一个预装APK,其名称不一定是EV_WebViewTest,以APK项目设置为准。
3、Android源码中设置应用为系统桌面应用本操作十分简单,只需在T:CodeRK3399PRO_HDMI_ANDROID8vendor ockchipcommonappsEV_WebViewTestAndroid.mk中添加以下即可:
LOCAL_OVERRIDES_PACKAGES := Launcher3解释一下:该语句的意思就是说,系统原生的Launcher3应用将不会被编进系统,被EV_WebViewTest这个应用给替换了。
LOCAL_OVERRIDES_PACKAGES这个语句通常用于替换系统原生内置应用。
仔细观察T:CodeRK3399PRO_HDMI_ANDROID8vendor ockchipcommonapps该文件下许多应用,都用到了该语句,如什么TVLauner,就是干电视盒子的。