Android 驱动器 API startResolutionForResult returns RESULT_CANCELLED
Android Drive API startResolutionForResult returns RESULT_CANCELLED
我正在尝试为我的 Android 应用实现 Google Drive,但我什至无法连接到 Api 客户端。我不知道为什么:
- 我已经在开发人员控制台中为 ~/.android/debug.keystore 配置了项目和凭据(值似乎是正确的)
- 我从 Drive for Android Documentation 复制粘贴了代码 -> 在方法
onConnectionFailed()
中 如果 connectionResult.hasResolution()
我正在调用 connectionResult.startResolutionForResult()
- 在
onActivityResult
中匹配 requestCode
我收到 resultCode == 0
(RESULT_CANCELLED) 即使我 select 我的帐户
你知道为什么吗?我也尝试添加:
<meta-data
android:name="com.google.android.apps.drive.APP_ID"
android:value="----"/>
进入 Manifest,它在文档页面上没有提到,但在一些 SO 帖子上。
感谢帮助
编辑:
我也试过用enableAutoManage
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.build();
而不是手动配置连接和连接失败回调:
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
它 returns 我在 onConnectionFailed
方法中的错误代码 13。基于 documentation 看来,这个 returns when:
OnConnectionFailedListener passed to
enableAutoManage(FragmentActivity,
GoogleApiClient.OnConnectionFailedListener) when the user choses not
to complete a provided resolution. For example by canceling a dialog.
但是我没有取消它。
我正在 Nexus 5x 上测试 - Android N
我在阅读有关钱包的内容时发现了问题所在 api
我只需要创建 OAuth 客户端 ID 而不是 API 密钥
- 转到Developer Console > Credentials
- 单击 "create credentials" > OAuth 客户端 ID > Android
- 填写详细信息
- 创建
- 打开 OAuth 同意屏幕(在凭据页面上)
- 填写邮箱和产品名称
- 保存
现在可以使用了!
以防万一
如果您错过了客户端 ID 创建过程,@VizGhar 解决方案是正确的。但是我得到 resultCode=0 并且我的 OAuth 客户端 ID 一切正常。最后我 解决了它 ,所以我根据文档创建了 SHA1,但我 运行 我的应用程序处于调试模式(构建变体)并且始终具有 resultCode=0。只是 切换到发布模式 并且问题消失了,现在 resultCode=-1 符合预期。
我正在尝试为我的 Android 应用实现 Google Drive,但我什至无法连接到 Api 客户端。我不知道为什么:
- 我已经在开发人员控制台中为 ~/.android/debug.keystore 配置了项目和凭据(值似乎是正确的)
- 我从 Drive for Android Documentation 复制粘贴了代码 -> 在方法
onConnectionFailed()
中 如果connectionResult.hasResolution()
我正在调用 - 在
onActivityResult
中匹配requestCode
我收到resultCode == 0
(RESULT_CANCELLED) 即使我 select 我的帐户
connectionResult.startResolutionForResult()
你知道为什么吗?我也尝试添加:
<meta-data
android:name="com.google.android.apps.drive.APP_ID"
android:value="----"/>
进入 Manifest,它在文档页面上没有提到,但在一些 SO 帖子上。
感谢帮助
编辑:
我也试过用enableAutoManage
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.build();
而不是手动配置连接和连接失败回调:
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
它 returns 我在 onConnectionFailed
方法中的错误代码 13。基于 documentation 看来,这个 returns when:
OnConnectionFailedListener passed to enableAutoManage(FragmentActivity, GoogleApiClient.OnConnectionFailedListener) when the user choses not to complete a provided resolution. For example by canceling a dialog.
但是我没有取消它。
我正在 Nexus 5x 上测试 - Android N
我在阅读有关钱包的内容时发现了问题所在 api
我只需要创建 OAuth 客户端 ID 而不是 API 密钥
- 转到Developer Console > Credentials
- 单击 "create credentials" > OAuth 客户端 ID > Android
- 填写详细信息
- 创建
- 打开 OAuth 同意屏幕(在凭据页面上)
- 填写邮箱和产品名称
- 保存
现在可以使用了!
以防万一
如果您错过了客户端 ID 创建过程,@VizGhar 解决方案是正确的。但是我得到 resultCode=0 并且我的 OAuth 客户端 ID 一切正常。最后我 解决了它 ,所以我根据文档创建了 SHA1,但我 运行 我的应用程序处于调试模式(构建变体)并且始终具有 resultCode=0。只是 切换到发布模式 并且问题消失了,现在 resultCode=-1 符合预期。