为什么CVS阅读器应用程序无法打开我的文件

时间:2015-03-13 15:13:03

标签: android csv

在我的应用程序中,我将数据写入csv文件,然后我想让用户使用设备可能具有的某些csv阅读器应用程序来查看它。 打开阅读器应用程序的代码如下:

String dataType = "text/csv";
if(!hasCSVReader(dataType)) {
    Log.i(TAG, "text/csv reader aplication was not found");
    dataType = "text/*";
}
i.setDataAndType(uri, dataType);
try {
    startActivity(Intent.createChooser(i, "OMW: Open history file..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(this, "No CSV or text reader application installed.", Toast.LENGTH_SHORT).show();
}

和hasCSVReader(..)如下:

//check if dataType reader is installed 
private boolean hasCSVReader(String dataType) {
    PackageManager pm = getPackageManager();
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setType(dataType);
    return (pm.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY).size() > 0);
}

在我的LG设备中,hasCSVReader(..)返回false,因此数据类型为"text/*",并且可供选择的列出的应用程序之一是" Polaris Viewer 4"它设法打开csv文件。

在Samsung 3设备中hasCSVReader(..)返回true,数据类型为"text/csv",列出的应用程序为" Polaris Viewer 4.1"和" OfficeSuite",但都无法打开文件。 当我将数据类型设置为"text/*"时,我获得了更多应用程序,但没有一个能够打开文件。

请注意,使用android文件浏览器(或其名称)导航到该文件并打开它,再次列出Polaris Viewer 4.1和OfficeSuite,但现在两者都设法打开文件没有问题。

我做错了什么?

0 个答案:

没有答案