我正在尝试制作一个应用,允许用户在点击它时打开并查看.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文件时,我的应用程序就会启动。我被困在这里因为我不知道如何将文件显示到我的应用程序中。有人可以帮忙吗?
谢谢
答案 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/
文件夹中。