现在的很多应用里面都含有插件程序,很多插件程序是apk程序。但是这些插件安装完成在手机的应用列表里面又找不到他们的图标。这是如何做到的呢?
其实很简单:
在Androidmanifest.xml中的启动Activity里面把intent-filter的launcher去掉就可以了。
<activity
android:name="com.example.apidemostest.MainActivity"
android:label="@string/app_name">
<!--
<intent-filter>
<actionandroid:name="android.intent.action.MAIN" />
<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
把这个intent-filter去掉就可以安装完该程序,但是在应用列表里面不出现这个程序的图标。
那么我们可以把插件apk也以这种形式实现,再用我们的程序去启动这些插件。
启动代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
ComponentName cn = new ComponentName("插件程序的包名",
"插件程序Activity的全路径");
intent.setComponent(cn);
getActivity().startActivity(intent);
这样是不是就好了呢?
其实不对的,还必须在插件程序的相应Activity的注册信息里面加入如下intent-filter:
<activity
android:name="com.example.apidemostest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.DEFAULT"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
这样就可以启动了。