ACTION_GET_CONTENT和TTF文件问题

时间:2017-08-03 01:58:16

标签: android mime-types

我试图让用户使用Intent在Android中选择TTF文件,但使用ACTION_GET_CONTENT时打开的原生文档选择器有几个非常烦人的问题:

  1. 在原生Android文档选择器的导航抽屉中选择下载最近,即使使用mime类型*/*,也不会显示任何TTF文件。
  2. 下载部分甚至没有显示任何文件夹,用户可能会在其中存储某些字体(最有可能是在下载文件夹中解压缩ZIP文件后)。同样,mime类型不会改变这种行为。
  3. 使用mime类型application/x-font-ttf(例如,建议here)始终将所有TTF文件保留为灰色。我目前可以获得的最好的东西是application/*,但它包含大量其他文件,例如PDF,ZIP和APK。
  4. 有没有办法解决上述任何问题?如果没有,是否有办法至少隐藏明显损坏的下载最近以解决问题1.和2.并且可能有一些神奇的技巧来排除(!)mime类型对于问题3,或者说,只是打算打开文件管理器?

1 个答案:

答案 0 :(得分:0)

仅供参考,目前似乎还没有一个真正的解决方案。我目前能想到的最好的方法是使用application/*,并检查是否可以使用Typeface将用户选择的文件制作成Typeface.createFromFile。如果该方法返回nullTypeface.DEFAULT或引发异常,则该文件不是字体。如果确实返回了某些内容,则我知道至少它是一种字体,但不是它是否是TTF。然后我假设,如果扩展名是.ttf,那是TTF,在所有其他情况下,我问用户:“这真的是TTF吗?”并相信他/她的答案。到底真的是否是TTF,只能在服务器端找到。