原文地址 : http://developer.51cto.com/art/201001/181358.htm

    對于編程愛好者們來說,Android手機操作系統是一款非常實用的系統。他們可以進行各種Android應用程序的開發來滿足自的應用需求。在這里我們就先來為大家講解一下有關Android安裝卸載程序的具體操作步驟。

    在Android安裝卸載程序的源碼中我們知道:

        
    1. < activity android:name=".PackageInstallerActivity">   
    2. < intent-filter>   
    3. < action android:name="android.intent.action.VIEW" />   
    4. < category android:name="android.intent.category.DEFAULT" />   
    5. < data android:scheme="content" />   
    6. < data android:scheme="file" />   
    7. < data android:mimeType="application/vnd.android.package-archive" />   
    8. < /intent-filter>   
    9. < /activity>   
    10. < activity android:name=".UninstallerActivity">   
    11. < intent-filter>   
    12. < action android:name="android.intent.action.VIEW" />   
    13. < action android:name="android.intent.action.DELETE" />   
    14. < category android:name="android.intent.category.DEFAULT" />   
    15. < data android:scheme="package" />   
    16. < /intent-filter>   
    17. < /activity> 

    因為根據里面的權限我們可以 安裝一個程序從sd卡:

        
    1. String fileName = Environment.getExternalStorageDirectory() 
      + "/myApp.apk";   
    2. Intent intent = new Intent(Intent.ACTION_VIEW);   
    3. intent.setDataAndType(Uri.fromFile(new File(fileName)), 
      "application/vnd.android.package-archive");   
    4. startActivity(intent);  

    Android安裝卸載程序的操作中要想卸載一個程序;

        
    1. Uri packageURI = Uri.parse("package:com.android.myapp");   
    2. Intent uninstallIntent = new Intent
      (Intent.ACTION_DELETE, packageURI);   
    3. startActivity(uninstallIntent);  

    默認是不支持安裝非市場程序的 因此判斷一下

        
    1. int result = Settings.Secure.getInt(getContentResolver(),
       Settings.Secure.INSTALL_NON_MARKET_APPS, 0);   
    2. if (result == 0) {   
    3. // show some dialog here   
    4. // ...   
    5. // and may be show application settings dialog manually   
    6. Intent intent = new Intent();   
    7. intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);   
    8. startActivity(intent);