http://blog.163.com/zmhot88@126/blog/static/169846647201082994458979/
通过包名判断应用的存在:
- 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;
- }
- }
getPackageManager()是Context中的抽象函数
判断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();
- }