如何以编程方式设置默认家庭应用

时间:2018-07-30 15:04:00

标签: android android-launcher

我想让我的android应用程序设置一个家庭应用程序(单击“主页”按钮时为默认启动器应用程序)。我已经在清单文件

中设置了intent-filter
           <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>

但是启动应用程序后,如果我单击“后退”按钮,则会在屏幕上出现一个窗口,并要求确认此活动为家。可以通过adb命令以编程方式进行设置还是可以设置?

在logcat中,通过选择我的应用程序作为家,我看到了以下操作:

07-30 16:56:16.809 1289-2215/? I/PackageManager: Replacing preferred activity com.myapp.hp/.MainActivity for user 0:
07-30 16:56:16.809 1289-2215/? I/PackageManager:   Action: "android.intent.action.MAIN"
07-30 16:56:16.809 1289-2215/? I/PackageManager:   Category: "android.intent.category.HOME"
07-30 16:56:16.809 1289-2215/? I/PackageManager:   Category: "android.intent.category.DEFAULT"
07-30 16:56:16.809 1289-2215/? I/PackageManager:   AutoVerify=false

1 个答案:

答案 0 :(得分:0)

步骤1:您需要具有设备的root访问权限才能卸载默认启动器

步骤2:卸载默认启动器adb uninstall app.package

然后转到所需的主屏幕应用。然后进入设置并将其设置为默认值

注意:可能只有root用户的设备

  

如果要使用adb命令

     

首先,您需要删除默认启动器,然后需要将launchera.apk移至系统应用程序内。   系统->媒体->默认->您需要将apk放在这里...   每个固件的路径可能会有所不同