Android Drive API startResolutionForResult返回RESULT_CANCELLED

前端之家收集整理的这篇文章主要介绍了Android Drive API startResolutionForResult返回RESULT_CANCELLED前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将Google云端硬盘应用到我的 Android应用中,我甚至无法连接到Api客户端.我不知道为什么:

>我在开发人员控制台中为〜/ .android / debug.keystore配置了项目和凭据(值似乎是正确的)
>我有来自Drive for Android Documentation的复制粘贴代码 – >在方法onConnectionFailed()我调用connectionResult.startResolutionForResult()如果connectionResult.hasResolution()
>在onActivityResult中匹配requestCode即使我选择了我的帐户,我也收到了resultCode == 0(RESULT_CANCELLED)

你知道为什么吗?我还尝试添加

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

在文档页面上没有提到但在某些SO帖子上没有提到的Manifest.

感谢帮助

编辑:

我也试过使用enableAutoManage

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .enableAutoManage(this,this)
        .addApi(Drive.API)
        .addScope(Drive.SCOPE_FILE)
        .build();

而不是manualy配置连接和connectionFailed回调:

.addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)

它在onConnectionFailed方法中返回错误代码13.根据documentation看来,这在以下时间返回:

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
>点击“创建凭据”> OAuth客户端ID> Android的
>填写详细信息
>创建
>打开OAuth许可屏幕(在凭据页面上)
>填写电子邮件和产品名称
>保存

现在它有效!

猜你在找的Android相关文章