如何在Android上显示已安装应用程序的详细信息?

时间:2011-04-04 08:48:17

标签: android

我正在编写一个应用程序,用于列出系统上安装的应用程序。我正在使用PackageManager和queryIntentActivities()来获取应用程序列表。

我可以启动它,卸载它(使用ACTION_DELETE),但我不知道如何显示细节(用户可以强制停止,移动到/从SD卡移动,查看磁盘空间使用等)?

我尝试了ACTION_VIEW,但它也显示2.1上的卸载对话框(还没有检查其他版本)。除了android-dev邮件列表中没有回答的问题,我也没有找到任何东西。

3 个答案:

答案 0 :(得分:9)

解决方案结合上面的回答和http://groups.google.com/group/android-developers/browse_thread/thread/1d4607eb370b1fe6/3cd4b85c310fe112?show_docid=3cd4b85c310fe112&pli=1

    Intent intent;

    if (android.os.Build.VERSION.SDK_INT >= 9) {
        /* on 2.3 and newer, use APPLICATION_DETAILS_SETTINGS with proper URI */
        Uri packageURI = Uri.parse("package:" + pkgName);
        intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS", packageURI);
        ctx.startActivity(intent);
    }  else  {
        /* on older Androids, use trick to show app details */
        intent = new Intent(Intent.ACTION_VIEW); 
        intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); 
        intent.putExtra("com.android.settings.ApplicationPkgName", pkgName); 
        intent.putExtra("pkg", pkgName); 
        ctx.startActivity(intent);          
    }

答案 1 :(得分:4)

从API Level 9(a.k.a.,Android 2.3)开始,您应该可以使用ACTION_APPLICATION_DETAILS_SETTINGS。在以前版本的Android中无法访问此屏幕。

答案 2 :(得分:1)

试试这个

public static void openAppInfo(Context context, String packageName)
{
    try 
    {
        //Open the specific App Info page:
        Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.setData(Uri.parse("package:" + packageName));
        context.startActivity(intent);
    } 
    catch ( ActivityNotFoundException e ) 
    {
        //Open the generic Apps page:
        Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
        context.startActivity(intent);
    }
}