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 に答える