【问题标题】:How to associate Android app with Google Drive files having particular extension?如何将 Android 应用程序与具有特定扩展名的 Google Drive 文件相关联?
【发布时间】:2014-06-17 08:51:32
【问题描述】:

我需要将 Google Drive 中具有特定扩展名的文件(例如 .gpx)与我的应用程序相关联。因此,当我单击 Drive 上的 .gpx 文件时,我应该可以选择使用我的应用程序打开此文件。

目前,我有一个活动来处理这些文件,按以下方式在 AndroidManifest.XML 中声明,它适用于本地存储的文件和 gmail 附件,但不适用于 Drive:

 <activity
            android:name=".ui.PhotosActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            >

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <intent-filter
                android:icon="@drawable/ic_launcher"
                android:label="@string/app_name"
                android:priority="1">
                <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"/>
                <data android:scheme="https"/>
                <data android:scheme="ftp"/>
                <data android:scheme="file"/>
                <data android:host="*"/>
                <data android:mimeType="*/*"/>
                <data android:pathPattern=".*\\.gpx"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>

                <action android:name="com.google.android.apps.drive.DRIVE_OPEN" />

                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>

                <data
                    android:mimeType="application/octet-stream"
                    android:pathPattern=".*\\.gpx"
                    android:scheme="file"/>
                <data
                    android:mimeType="application/octet-stream"
                    android:pathPattern=".*\\.gpx"
                    android:scheme="content"/>
            </intent-filter>
        </activity>

【问题讨论】:

    标签: android google-drive-api intentfilter


    【解决方案1】:

    将此添加到您的清单中:

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

    然后将其添加到您的活动中:

    <meta-data
                android:name="com.google.android.apps.drive.APP_ID"
                android:value="id=xxxxxxx" />
    

    其中 xxxxxxx 是您在 Google API 控制台中声明的项目 ID。

    <intent-filter>
                <action android:name="com.google.android.apps.drive.DRIVE_OPEN" />
    
                <data android:mimeType="application/vnd.google-apps.drive-sdk.1234567890" />
                <data android:mimeType="*/*" />
                <data android:pathPattern=".*\\.gpx" />
             </intent-filter>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-07
      • 2011-02-28
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多