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.parse("file://" + filePath),"application/vnd.android.package-archive"); //或者 //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); }

你可能感兴趣的:(android安装和卸载程序)