2017-02-13 154 views
-2

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

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

和从设置应用下面线加入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> 

虽然,它工作正常时,如果你想定制ROM我打第三方应用程序在启动

回答

0

可见建议首先熟悉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" /> 

所以删除它们和你做。

+0

这就是我第一次做的,但它只适用于从Launcher中删除应用程序图标。每当我尝试点击设置中的首选项屏幕时,第三方应用程序将打开一秒,并弹出错误关闭应用程序。我只想将应用程序集成到设置中并将其从启动器中删除。如果您能告诉我或将我重定向到正确的页面,这将会有所帮助。 –

相关问题