gpt4 book ai didi

android - 在 Android 中注册新的文件类型

转载 作者:IT老高 更新时间:2023-10-28 23:10:36 25 4
gpt4 key购买 nike

我想在 Android 上编写一个简单的 STL(几何数据文件)查看器应用程序,但我无法识别系统的格式。我在我的应用 list 文件中写了这个:

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:pathPattern=".*\\.stl" />
<data android:mimeType="application/sla" />
<data android:host="*" />
</intent-filter>

但是当我启动浏览器并去下载一些示例 STL 文件的那一刻,下载被中断,并且我报告系统的数据文件类型未知。

我没有真正的 Android 设备,所以我只使用一个模拟器,而我在 MonoDroid 上使用 C# 进行开发(但老实说,我认为这不是问题)。

我该如何解决这个问题?

最佳答案

我正在使用此 list 向我的应用程序注册(例如)一个 .STL 文件类型:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.test.core" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Testy" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name="ThorActivity" android:label="@string/app_name">
</activity>

<activity android:name="LokiActivity" android:label="@string/app_name">
</activity>

<activity android:name="OdinActivity" android:label="@string/app_name">
<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="http" android:host="*"
android:pathPattern=".*\\.stl" />
<data android:scheme="https" android:host="*"
android:pathPattern=".*\\.stl" />
<data android:scheme="content" android:host="*"
android:pathPattern=".*\\.stl" />
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.stl" />
</intent-filter>
</activity>
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

</manifest>

如您所见,我将 .STL 文件扩展名链接到 Activity OdinActivity。在 OdinActivity 中,我使用以下行来获取文件路径以便我可以打开它:

filePath = getIntent().getData().getEncodedPath();

然后我只是打开它来阅读它:

FileOutputStream out = new FileOutputStream(new File(filePath));

关于android - 在 Android 中注册新的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com