0

我正在尝试制作一个允许用户在单击时打开并查看 .stl 文件的应用程序。通过将以下意图过滤器添加到我的 AndroidManifest.xml 中,我已经设法将此类文件与我的应用程序相关联: <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 文件时,我的应用程序将启动。我被困在这里,因为我不知道如何将文件实际显示到我的应用程序中。有人可以帮忙吗?谢谢

4

1 回答 1

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并在弹出窗口中显示。该代码使用Apache Commons IO 库IOUtils中的类。为了将此类集成到您的应用程序中,您需要下载 Commons IO 库的 jar 并将其复制到您的应用程序的文件夹中。libs/

于 2013-08-26T08:30:32.010 回答