您的位置:首页 > 移动开发 > Android开发

Android如何判断应用或Activity的存在性

2015-02-06 10:43 357 查看


通过包名判断应用的存在:

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();<br style="line-height: 28px;" />        intent.setClassName("包名", "类名");      <br style="line-height: 28px;" />        if(intent.resolveActivity(getPackageManager()) == null) {<br style="line-height: 28px;" />        	//说明系统中不存在这个activity<br style="line-height: 28px;" />        }


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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: