經過測試,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