代码之家  ›  专栏  ›  技术社区  ›  John

具有特定于供应商的MIME类型的意图筛选器

  •  0
  • John  · 技术社区  · 16 年前

    app 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类型的URIvnd.vnc.config配置. 需要替换的东西 需要以下代码:

    意图意图=新意图(意图。操作视图, Uri.解析(" ")); 星体触觉(意图);

    所以需要什么样的弦Uri.解析()以匹配特定于供应商的MIME类型,如vnd.vnc.config?给定特定于供应商的MIME类型,如vnd.vnc.config配置,通常如何确定要传递到哪个字符串Uri.解析()匹配这样的MIME类型?

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

    我已经把AndroidVNC的全部AndroidManifest.xml文件在这个问题的底部归档。 完全独立的Android应用程序能否调用指定的任何或所有活动 在这个AndroidManifest.xml文件文件?如果是,那么单独的应用程序将使用以下代码的哪个特定版本来匹配和调用AndroidManifest.xml文件文件? 意图意图=新意图(意图。操作视图, Uri.解析(" ")); 星体触觉(意图);

        <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 回复  |  直到 16 年前
        1
  •  0
  •   CommonsWare    16 年前

    一些东西来代替FOO 需要以下代码:

    不一定。呼叫 setType() Intent . 根据他们如何实施这些活动,他们甚至可能不需要 FOO .

    给定特定于供应商的MIME类型,如 vnd.vnc.config配置,总的来说,你如何 确定要传入的字符串 Uri.解析()匹配这样的MIME类型?

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

    一个完全独立的Android应用程序 调用任何或所有活动 在此指定AndroidManifest.xml文件 文件?

    当然可以试试。要确定活动的预期效果,请询问活动的作者,或阅读他们的源代码。尤其是在 Uri 正如活动所期望的那样,仅仅通过查看清单并不一定就能获得足够的信息。这和一本书没什么不同:阅读目录和阅读书籍是不一样的。