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

打开应用程序信息(Application Info)

2016-04-20 08:54 411 查看
//////////////////////////////////////////////////////////////////////////////

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";

/**

* 调用系统InstalledAppDetails界面显示已安装应用程序的详细信息。 对于Android 2.3(Api Level

* 9)以上,使用SDK提供的接口; 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)。

*

* @param context

*

* @param packageName

* 应用程序的包名

*/

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(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

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);

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