调用Android系统“应用程序信息(Application Info)”界面

privatestaticfinalString SCHEME ="package";
/**
* 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.1及以前版本)
*/
privatestaticfinalString APP_PKG_NAME_21 ="com.android.settings.ApplicationPkgName";
/**
* 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.2)
*/
privatestaticfinalString APP_PKG_NAME_22 ="pkg";
/**
* InstalledAppDetails所在包名
*/
privatestaticfinalString APP_DETAILS_PACKAGE_NAME ="com.android.settings";
/**
* InstalledAppDetails类名
*/
privatestaticfinalString APP_DETAILS_CLASS_NAME ="com.android.settings.InstalledAppDetails";
/**
* 调用系统InstalledAppDetails界面显示已安装应用程序的详细信息。 对于Android 2.3(Api Level
* 9)以上,使用SDK提供的接口; 2.3如下,使用非公开的接口(查看InstalledAppDetails源码)。
*
* @param context
*
* @param packageName
*            应用程序的包名
*/
publicstaticvoidshowInstalledAppDetails(Context context, String packageName) {
Intent intent =newIntent();
finalintapiLevel = Build.VERSION.SDK_INT;
if(apiLevel >=9) {// 2.3(ApiLevel 9)以上,使用SDK提供的接口
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
Uri uri = Uri.fromParts(SCHEME, packageName,null);
intent.setData(uri);
}else{// 2.3如下,使用非公开的接口(查看InstalledAppDetails源码)
// 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不一样。
finalString appPkgName = (apiLevel ==8? APP_PKG_NAME_22 : APP_PKG_NAME_21);
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName(APP_DETAILS_PACKAGE_NAME,
APP_DETAILS_CLASS_NAME);
intent.putExtra(appPkgName, packageName);
}
context.startActivity(intent);
}
相关文章
相关标签/搜索