我正在尝试将Google云端硬盘应用到我的Android应用中,我甚至无法连接到Api客户端。我不知道为什么:
onConnectionFailed()
中,如果connectionResult.startResolutionForResult()
connectionResult.hasResolution()
onActivityResult
中匹配requestCode
即使我选择了我的帐户,我也收到resultCode == 0
(RESULT_CANCELLED)你知道为什么吗?我还尝试添加:
<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();
而不是manualy配置连接和connectionFailed回调:
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
它在onConnectionFailed
方法中返回错误代码13。基于documentation,似乎在以下时间返回:
传递给OnConnectionFailedListener enableAutoManage(FragmentActivity, GoogleApiClient.OnConnectionFailedListener)当用户没有选择时 完成提供的决议。例如,通过取消对话框。
但我没有取消它。
我在Nexus 5x上测试它 - Android N
答案 0 :(得分:8)
在阅读有关钱包api的内容时,我发现了问题所在。
我只需要创建OAuth客户端ID而不是API密钥
现在有效!
答案 1 :(得分:0)
仅限于案例
如果您错过了客户ID创建过程,@ pizGhar解决方案是正确的。但我得到resultCode = 0,我的OAuth客户端ID一切正常。最后我解决了它,所以我按照文档创建了SHA1,但是我在调试模式下运行我的应用程序(Build variant)并且总是有resultCode = 0。只是切换到发布模式,问题就消失了,现在resultCode = -1正如预期的那样。