【问题标题】:Drive API manifest and integration with Drive AppDrive API 清单和与 Drive App 的集成
【发布时间】:2012-07-06 13:39:23
【问题描述】:

我有一个 Android 应用,它在 Google 云端硬盘中创建自己的文件,MIME 类型为 application/vnd.test.type

here 所述,我想让我的应用在由 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。一些documentation calls it the App ID,一些称之为项目ID (See here at 26:44)。我尝试使用 Google API 控制台中列出的“项目 ID”以及同一页面上的项目编号(来自 URL)。无论我选择哪个值作为 ID,我都会收到相同的错误。

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

【问题讨论】:

  • 你用的是模拟器还是真机?
  • 真正的 Galaxy Nexus 运行 Jellybean

标签: android google-drive-api


【解决方案1】:

目前存在一个问题,要求您的应用程序必须在 Chrome Webstore 中列出(甚至仅限受信任的测试人员)才能使 Open With 流程正常工作。

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

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

【讨论】:

  • 非常感谢。可能将文档更新为这种效果?我在这上面浪费了很多时间,只是因为你在 IO 上的演示才尝试过。你能告诉我我应该在清单中使用哪个 ID。我不清楚。谢谢。
  • 您应该使用的 ID 来自 API 项目,也是 URL 的一部分。示例:https://code.google.com/apis/console/#project:&lt;APP_ID&gt;(只能是数字)。我希望在开发人员开始尝试之前发布 Google Play 服务:-/
  • Chrome Webstore 的要求还在吗?我一直在尝试驱动集成,但遇到了同样的问题(发生内部错误)。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多