如何添加自定义MIME类型?
我想要的是:能够通过邮件发送我的自定义文件,并将其与我的应用程序从GMail中的预览按钮或在文件浏览器中打开时导入。
我知道:我读过很多自定义MIME类型的处理程序,android不关心文件扩展名等,但是如何为我的自定义文件创建MIME类型?
问题:我是否需要成为内容提供商? 我只想导入文件(从备份)不提供任何东西。 我看到有人处理“application / abc”,说它工作正常,但如何为我的文件“myFile.abc”和MIME类型添加该连接?
一些方向如何注册/映射自定义MIME类型将被认为是! :)
<activity
android:name="MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<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:host="{your mime}.com"
android:scheme="http" >
</data>
</intent-filter>
</activity>
<!--
android:scheme="http" will make android "think" thats this is a link
-->
现在,当您收到带有文本"http://{your mime}.com"
的短信或点击该文本链接时,您的活动(MainActivity)将会运行。
你也可以添加参数:
text = "http://{your mime}.com/?number=111";
然后在onCreate()或onResume()方法中添加:
Intent intentURI = getIntent();
Uri uri = null;
String receivedNum = "";
Log.d("TAG", "intent= "+intentURI);
if (Intent.ACTION_VIEW.equals(intentURI.getAction())) {
if (intentURI!=null){
uri = intentURI.getData();
Log.d("TAG", "uri= "+uri);
}
if (uri!=null)
receivedNum = uri.getQueryParameter("number");
}
据我所知,MIME类型非常灵活(我创建了我的application/whatever
),并立即被Android接受,早在Dalvik版本2.1。 为了正确处理它们,我添加了这个意图过滤器:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/whatever" />
</intent-filter>
但有一个警告。 尽管我总是用intent.setType("application/whatever");
设置发送Intent的类型, ,在一些手机上,我已经看到实际数据到达application/octet
(为了看到值,我分配了传入的Intent并直接检查它的值Intent currentIntent = getIntent();
)。 接收Android设备不知道如何处理传入的数据,并告诉我。 所以我补充说
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/octet-stream" />
</intent-filter>
当然,这种方法可能会很麻烦,但Gmail的问题至少在于它不一定会在文件名中写入该文件,这使得我选择定义无用的路径。 至少对于传入的octet-stream
您知道它不是您窃取的任何应用程序的特定数据......但是,您应该在事后验证数据,而不是假定它对您的应用程序有效。
未经测试,但类似这样的应该工作。 把它放在你的AndroidManifest.xml文件中,并打开你想要打开的文件:
<activity name=".ActivityHere">
<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="mimeTypeHere" />
</intent-filter>
</activity>
链接地址: http://www.djcxy.com/p/46929.html
上一篇: How to add custom mime type?
下一篇: How do I get the File Extention for a Mime Type (Content Type)