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