我试图让用户使用Intent在Android中选择TTF文件,但使用ACTION_GET_CONTENT
时打开的原生文档选择器有几个非常烦人的问题:
*/*
,也不会显示任何TTF文件。application/x-font-ttf
(例如,建议here)始终将所有TTF文件保留为灰色。我目前可以获得的最好的东西是application/*
,但它包含大量其他文件,例如PDF,ZIP和APK。有没有办法解决上述任何问题?如果没有,是否有办法至少隐藏明显损坏的下载和最近以解决问题1.和2.并且可能有一些神奇的技巧来排除(!)mime类型对于问题3,或者说,只是打算打开文件管理器?
答案 0 :(得分:0)
仅供参考,目前似乎还没有一个真正的解决方案。我目前能想到的最好的方法是使用application/*
,并检查是否可以使用Typeface
将用户选择的文件制作成Typeface.createFromFile
。如果该方法返回null
或Typeface.DEFAULT
或引发异常,则该文件不是字体。如果确实返回了某些内容,则我知道至少它是一种字体,但不是它是否是TTF。然后我假设,如果扩展名是.ttf
,那是TTF,在所有其他情况下,我问用户:“这真的是TTF吗?”并相信他/她的答案。到底真的是否是TTF,只能在服务器端找到。