`
liangoogle
  • 浏览: 274064 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多

 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问题

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics