android进入系统自带的程序应用管理

来源:互联网 发布:淘宝如何获取电子发票 编辑:程序博客网 时间:2024/05/17 09:35
import android.os.Build;    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     *            应用程序的包名     */    /**     * 进入系统自带的程序管理     *      * @param context     * @param packageName     */    public static void openSystemAppManage(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);    }

原创粉丝点击