读书人

获取运用详细信息 报错 解决

发布时间: 2012-08-27 21:21:57 作者: rapoo

获取应用详细信息 报错 解决

?public static void showInstalledAppDetails(Context context, String packageName) { ?

? ? ? ? Intent intent = new Intent(); ?

? ? ? ? final int apiLevel = 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不同。 ?

? ? ? ? ? ? final String 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); ?

? ? }?

?

?

?private static final String SCHEME = "package"; ?

? ? /**?

? ? ?* 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.1及之前版本)?

? ? ?*/ ?

? ? private static final String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName"; ?

? ? /**?

? ? ?* 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.2)?

? ? ?*/ ?

? ? private static final String APP_PKG_NAME_22 = "pkg"; ?

? ? /**?

? ? ?* InstalledAppDetails所在包名?

? ? ?*/ ?

? ? private static final String APP_DETAILS_PACKAGE_NAME = "com.android.settings"; ?

? ? /**?

? ? ?* InstalledAppDetails类名?

? ? ?*/ ?

? ? private static final String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails"; ?

?

?

这是正确代码,主要是action问题

读书人网 >移动开发

热点推荐