打开带有特定分机Android的文件

时间:2013-08-18 13:43:08

标签: android android-intent view

我正在尝试制作一个应用,允许用户在点击它时打开并查看.stl文件。通过在AndroidManifest.xml中添加以下intent-filter,我已经设法将这样的文件与我的应用程序相关联:  <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="file" /> <data android:mimeType="*/*" /> <data android:pathPattern=".*\\.STL" /> <data android:host="*" /> </intent-filter> 因此,当用户点击.STL文件时,我的应用程序就会启动。我被困在这里因为我不知道如何将文件显示到我的应用程序中。有人可以帮忙吗? 谢谢

1 个答案:

答案 0 :(得分:0)

以下是阅读文件内容的方法:在Activity注册的intent-filter中:

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Uri data = getIntent().getData();
        try {
            String fileContents = getFileContents(data);
            Toast.makeText(getApplicationContext(), fileContents, Toast.LENGTH_LONG);
        } catch(IOException e) {
            // Handle error...
        }
    }
    private String getFileContents(Uri data) throws IOException {
        InputStream fileContents = getContentResolver().openInputStream(data);
        StringWriter writer = new StringWriter();
        IOUtils.copy(fileContents, writer, "US-ASCII");
        return writer.toString();
    }
    ...
}

这会将.stl文件的内容读入变量fileContents并将其显示在弹出窗口中。该代码使用the Apache Commons IO library中的IOUtils类。为了将此类集成到您的应用程序中,您需要下载Commons IO liblary的jar并将其复制到应用程序的libs/文件夹中。