1

是否可以从您的应用程序中检测到设备上的默认启动器应用程序是什么?

我正在使用 PackageManager,但似乎看不到我在寻找什么,我希望我的启动器类型的应用程序在设置为默认启动器时表现不同,所以我试图以编程方式检测用户是否已将其设置为是否为默认启动器

无论我将什么设置为默认启动器,我在下面尝试的代码都会返回 Android 系统:

pm = getApplicationContext().getPackageManager();
        Intent i = (new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
        final ResolveInfo mInfo = pm.resolveActivity(i, 0);
        Log.v("curent default launcher",":::::::::"+ pm.getApplicationLabel(mInfo.activityInfo.applicationInfo));
4

1 回答 1

2

在 Google 提供的启动器替换示例中,活动在清单中具有以下定义:

 <activity android:name="Home"
                android:theme="@style/Theme"
                android:launchMode="singleInstance"
                android:stateNotNeeded="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

基于此,您应该添加以下类别以查询启动器

Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.addCategory(Intent.CATEGORY_DEFAULT);
于 2012-10-22T20:42:15.113 回答