经过测试,intent-filter标签中的:
1.
<action android:name="android.intent.action.MAIN" />
代表这是程序的入口Activity。如果没有Activity有这个声明,程序将没有图标。
2.
<category android:name="android.intent.category.LAUNCHER" />
引用API:Should be displayed in the top-level launcher.
代表这个Activity的category是LAUNCHER类型。LAUNCHER类型的Activity会显示在程序列表中,如果没有Activity有这个声明,程序将没有图标,但在「已安装列表」中会有。
3.原理类似,在2.3的系统上使用如下代码会使得用户在卸载程序列表中找到这个Activity的选项。
<activity android:label="卸载程序" android:name="com.example.hardtouninstall.Uninstall"> <intent-filter android:priority="2147483647"> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.DELETE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="package" /> </intent-filter> </activity>
Android4.3以上这个方法失效,会直接卸载。
4.「category.DEFAULT」牵涉到implicit intent,先到这了。。
参考:http://developer.android.com/reference/android/content/Intent.html#ACTION_DELETE