问题描述
最近我正在从源代码构建 AOSP ROM。 我想要做的是,将第 3 方应用程序添加到“设置”应用程序中,它应该仅从“设置”中启动,并且应该从“启动器”中不可见。 这就是我所做的,每次都失败。 从应用程序 AndroidManifest.xml 中删除了这些行
android:name="android.intent.category.LAUNCHER" />
并从 Settings 应用程序在 SettingsActivity.java 中添加以下行。
if (KA_FRAGMENT.equals(fragmentName)) {
Intent kaIntent = new Intent();
kaIntent.setClassName("com.cyborg.manager", "com.cyborg.manager.activities.MainActivity");
startActivity(kaIntent);
finish();
return null;
}
还在设置的 AndroidManifest.xml 中添加了以下几行
<activity android:name="Settings$KActivity"
android:label="@string/hit_perform"
android:icon="@drawable/hit_performance_icon"
android:taskAffinity="" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<intent-filter android:priority="1">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.urom" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.ka" />
</activity>
虽然,当 3rd 方应用程序在启动器中可见时它工作正常
1楼
如果您想使用自定义 ROM,我建议您先熟悉 Android 基础知识。
是什么让你的启动器显示的活动是这个<intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
特别是这两行:
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
所以删除它们,你就完成了。