Android安装卸载程序
在Android安装卸载程序的源码中我们知道:
< 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卡安装一个程序:
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);
默认是不支持安装非市场程序的 因此判断一下:
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);
}