通过包名判断应用的存在:
- public boolean checkBrowser(String packageName) {
- if (packageName == null || "".equals(packageName))
- return false;
- try {
- ApplicationInfo info = getPackageManager().getApplicationInfo(
- packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
- return true;
- } catch (NameNotFoundException e) {
- return false;
- }
- }
判断Activity的存在性:
Intent intent = new Intent(); intent.setClassName("包名", "类名"); if(intent.resolveActivity(getPackageManager()) == null) { //说明系统中不存在这个activity }
- Intent intent = new Intent();
- intent.setClassName("包名", "类名");
- if(getPackageManager().resolveActivity(intent, 0) == null) {
- //说明系统中不存在这个activity
- }
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setClassName("com.android.settings", //$NON-NLS-1$
- "com.android.settings.InstalledAppDetails"); //$NON-NLS-1$
- intent.putExtra("com.android.settings.ApplicationPkgName", //$NON-NLS-1$
- mCurrentPkgName);
- List<ResolveInfo> acts = getPackageManager().queryIntentActivities(
- intent, 0);
- if (acts.size() > 0) {
- startActivity(intent);
- } else {
- Toast.makeText(this,
- getString(R.string.failed_to_resolve_activity),
- Toast.LENGTH_SHORT).show();
- }