具有供应商特定MIME类型的Intent过滤器

时间:2010-07-21 03:34:04

标签: android

应用AndroidVNC在其清单中定义了以下活动过滤器:

        <activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
           <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.vnc.config" />
           </intent-filter>
         </activity>

如果可以调用此活动,则需要特定于供应商的MIME类型vnd.vnc.config的URI。需要在以下代码中替换 FOO

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(“ FOO ”)); startActivity(意向);

那么Uri.parse()需要什么字符串来匹配供应商特定的MIME类型,如vnd.vnc.config?给定供应商特定的MIME类型,如vnd.vnc.config,一般来说,如何确定要传入Uri.parse()的字符串以匹配这种MIME类型?

===========================================

我在这个问题的底部添加了AndroidVNC的整个AndroidManifest.xml文件。 完全独立的Android应用程序是否可以调用指定的任何或所有活动 在这个AndroidManifest.xml文件中?如果是这样,以下代码的哪个特定版本将单独的应用程序用于匹配和调用AndroidManifest.xml文件中的每个活动? Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(“ FOO ”)); startActivity(意向);

    

    <provider android:name="Provider"
        android:authorities="android.androidVNC.Provider" />

            <activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
                    <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.vnc.config" />
                    </intent-filter>
            </activity>

        <activity android:name=".gui.ListVncSettingsActivity" 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=".gui.InsertVncSettingsActivity">
        <intent-filter>
            <action android:name="android.intent.action.INSERT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/vnd.vnc.config" />
        </intent-filter>
    </activity>

    <activity android:name=".gui.EditVncSettingsActivity">
        <intent-filter>
            <action android:name="android.intent.action.EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.vnc.config" />
        </intent-filter>
    </activity>
    <activity android:name=".gui.DeleteVncSettingsActivity">
        <intent-filter>
            <action android:name="android.intent.action.DELETE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.vnc.config" />
        </intent-filter>
    </activity>

    </application>




<uses-permission android:name="android.permission.INTERNET"></uses-permission>

1 个答案:

答案 0 :(得分:0)

  

取代FOO的东西   需要以下代码:

不一定。致电setType()上的Intent。根据他们实施活动的方式,他们可能甚至不需要FOO

  

给定供应商特定的MIME类型   vnd.vnc.config,一般你怎么样   确定要传入的字符串   Uri.parse()匹配这样的MIME类型?

你问这个活动的作者。也许他们期望处理Web服务器提供MIME类型的链接。也许他们有一个关联的ContentProvider,用于提供该MIME类型的内容。也许他们有其他方法。在这种情况下,它们具有<provider>元素,这是一个线索。

  

可以完全独立的Android应用   调用任何或所有活动   在这个AndroidManifest.xml中指定   文件?

它当然可以尝试。要确定活动的期望,请询问活动的作者,或阅读他们的源代码。特别是对于活动所期望的任何Uri,仅仅通过查看清单就不一定能获得足够的信息。这与书不同:阅读目录与阅读书籍不同。