|
安装和卸载Android applications 用
Android PackageInstaller
参照PackageInstaller源码
http://android.git.kernel.org/?p ... hb=refs/heads/donut
创建安装和卸载的Layout.
<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卡安装Android应用文件(.apk 文件):
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");startActivity(intent);
用下面的操作可以卸载已安装的Android应用程序
Uri packageURI = Uri.parse("package:com.android.myapp");Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);startActivity(uninstallIntent)
对于Android应用程序,由于移动设备省却设置是INSTALL_NON_MARKET_APPS。所以当安装Android应用程序时,需要用户确认是否安装。
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);} |
|