当前位置: 代码迷 >> Android >> 将 3rd 方应用程序添加到 Settings.apk
  详细解决方案

将 3rd 方应用程序添加到 Settings.apk

热度:113   发布时间:2023-08-04 10:55:47.0

最近我正在从源代码构建 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 方应用程序在启动器中可见时它工作正常

如果您想使用自定义 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" />

所以删除它们,你就完成了。

  相关解决方案