【问题标题】:Application selection dialog based on filetype基于文件类型的应用程序选择对话框
【发布时间】:2011-10-03 13:38:42
【问题描述】:

我正在尝试创建一个对话框,它将显示可用应用程序的列表以打开给定的文件类型。

我一直在 stackoverflow 上查看一些与相同问题有关的问题,但由于缺乏答案,我迷路了。特别是我一直在研究这个问题:

In Android, How can I display an application selector based on file type?

我的后续问题是:

  • 如何处理List<ResolveInfo>
  • 如何使用名称和图标显示可用的应用程序?
  • 当用户选择一个应用程序时,如何根据所选项目的 ResolveInfo 启动它?

【问题讨论】:

    标签: android android-dialog


    【解决方案1】:

    我找到了一个解决方案,它为我提供了可以打开给定 mimetype 的应用程序的完整列表。这不是最好的,因为我希望列表更具体,并且只有几个应用程序(例如,如果它是一个我想打开的 URL,只有浏览器会显示)但可以达到目的。

    这是我所做的:

    File file = new File( "myFileLocation.txt" );
    String extension = MimeTypeMap.getFileExtensionFromUrl( file.getPath() );
    String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    
    Intent intent = new Intent();
    intent.setAction( Intent.ACTION_VIEW );
    intent.setDataAndType( Uri.fromFile( file ), type );    
    context.startActivity( intent );
    

    【讨论】:

    • 在 startActivity PackageManager packageManager = getPackageManager(); 之前添加此代码列出活动 = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); boolean isIntentSafe = activity.size() > 0; if (!isIntentSafe) toast("没有可用的应用程序:\n" + fileName);否则
    猜你喜欢
    • 2011-01-28
    • 2020-12-31
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多