7

我有一个 Android 应用程序,它使用 mime 类型在 Google Drive 中创建自己的文件application/vnd.test.type

我想让我的应用程序在由 Google Drive 应用程序打开时处理此文件类型的请求,如此处所述

我处理文件打开的活动在我的清单文件中,如下所示:

    <activity android:name="DriveHandlerActivity" 
              android:label="@string/app_name" 
              android:icon="@drawable/icon" 
              android:exported="true" >
        <meta-data android:name="com.google.android.apps.drive.APP_ID" 
                   android:value="id=MY_ID"/> 
        <intent-filter >
            <action android:name="com.google.android.apps.drive.DRIVE_OPEN"/>
            <data android:mimeType="application/vnd.test.type"/>
        </intent-filter>
    </activity> 

当我尝试在 Google Drive 应用程序中打开文件时,我得到了“打开方式...”对话框,正如预期的那样,我的应用程序被列为唯一能够处理此文件类型的条目。不幸的是,在确认操作后,我会得到一个对话框。

错误对话框

我唯一的选择是按下“取消”按钮,让我返回 Google Drive 应用程序。

我并不完全相信我的元数据是正确的,因为根据您的查看位置使用不同的名称来引用 ID。一些文档将其称为App ID,一些文档将其称为项目 ID (参见此处 26:44)。我尝试使用我的 Google API 控制台中列出的“项目 ID”以及同一页面上的项目编号(来自 URL)。无论我选择哪个值作为 ID,我都会收到相同的错误。

据我所知,下一步应该是在我的应用程序中处理意图,但由于所描述的错误,意图永远不会到达。谁能告诉我我做错了什么?

4

1 回答 1

3

当前存在一个问题,要求您的应用程序必须在Chrome 网上商店中列出(即使仅对受信任的测试人员)才能使Open With流程正常工作。

但是,即使问题得到解决,在Google Play 服务API 发布之前,您的应用也无法访问该文件。唯一的解决方法是请求对整个 Drive 范围的授权,https://www.googleapis.com/auth/drive这不推荐但对调试很有用。

解决 Chrome Webstore 限制后,我将更新此答案。

于 2012-07-09T18:39:54.407 回答