检测默认启动器,android

时间:2012-10-22 20:32:46

标签: android android-package-managers

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

我正在使用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));

1 个答案:

答案 0 :(得分: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);