将第三方应用程序添加到Settings.apk

时间:2017-02-13 09:57:36

标签: java android

最近我正在从源代码构建AOSP ROM。我想要做的是,将第三方应用程序添加到“设置”应用程序中,它应该仅从“设置”启动,并且应该从Launcher中不可见。 这就是我所做的,它每次都失败了。 从AndroidManifest.xml应用程序中删除了这些行

android:name="android.intent.category.LAUNCHER" />

并在Settings app中的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>

虽然,当第三方应用程序在启动器中可见时,它可以正常工作

1 个答案:

答案 0 :(得分:0)

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

所以删除它们就完成了。