スプリングボードからアプリケーションアイコンを削除する方法ですが、アンインストールしたくありません。スプリングボードからアイコンを削除するだけで、このアプリは別のアプリケーションから起動されます。簡単に言えば、このような別のスプリングボードを作成し、他の場所からではなく、そこからアプリケーションを起動したいと考えています。これは可能ですか?
2 に答える
アプリケーションの AndroidMainfest.xml で、ランチャーを使用しないアクティビティの次の行を削除します。
<category android:name="android.intent.category.LAUNCHER" />
android.intent.action.MAIN
アクションをアプリ固有のものに変更します
<action android:name="android.intent.action.MAIN" />
たとえば、以下のように変更して、カスタム インテント アクションを表すことができます。
<action android:name="com.example.action.MAIN" />
これで、次のような方法で別のアプリケーションからこのアプリケーションを起動できるはずです。
Intent intent = new Intent("com.example.action.MAIN");
currentActivity.startActivity(intent);
詳細はこちら: http://developer.android.com/guide/components/intents-filters.html
スプリングボードからアプリケーションを削除するには、これを試すことができます:
PackageManager packageManager = context.getPackageManager();
ComponentName componentName = new ComponentName(context,LauncherActivity.class);
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
別のアプリケーションからアプリケーションを開始するには、次の手順を実行できます。
1. action=MAIN および category=LAUNCHER でインテントを作成します
2. context.getPackageManager を使用して、現在のコンテキストから PackageManager を取得します。
3.packageManager.queryIntentActivity(, 0) インテントにはカテゴリ=LAUNCHER、アクション=MAIN、または packageManager.resolveActivity(, 0) があり、メイン/ランチャーで最初のアクティビティを取得します
4.気になるActivityInfoを取得する
5.ActivityInfoからpackageNameと名前を取得する
6.最後に、category=LAUNCHER、action=MAIN、componentName = new ComponentName(packageName, name)、setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) で別のインテントを作成します。
7.最後に context.startActivity(newIntent)