您的位置:首页 > 移动开发 > Android开发

安装和卸载Android程序

2011-12-03 17:14 218 查看
文章转自:http://blog.csdn.net/fenghome/archive/2010/06/16/5673757.aspx

在Android安装卸载程序的源码中我们知道:

view
plaincopy
to clipboardprint?

< activity android:name=".PackageInstallerActivity">     

< intent-filter>     

< action android:name="android.intent.action.VIEW" />     

< category android:name="android.intent.category.DEFAULT" />     

< data android:scheme="content" />     

< data android:scheme="file" />     

< data android:mimeType="application/vnd.android.package-archive" />     

< /intent-filter>     

< /activity>    

   

< activity android:name=".UninstallerActivity">     

< intent-filter>     

< 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>   

因为根据里面的权限我们可以 从sd卡安装一个程序:

view
plaincopy
to clipboardprint?

String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";        

Intent intent = new Intent(Intent.ACTION_VIEW);     

    

intent.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");     

//或者     

//intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");      

    

startActivity(intent);  

  

Android安装卸载程序的操作中要想卸载一个程序:

 

view
plaincopy
to clipboardprint?

Uri packageURI = Uri.parse("package:com.android.myapp");        

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);        

startActivity(uninstallIntent);     

默认是不支持安装非市场程序的 因此判断一下

view
plaincopy
to clipboardprint?

int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0);     

if (result == 0) {     

// show some dialog here     

// ...     

// and may be show application settings dialog manually     

Intent intent = new Intent();     

intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);     

startActivity(intent);    

}
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息