0

我正试图建立一个集成谷歌驱动器API并使用该驱动器作为存储存储的Android应用程序,但是我遇到了问题后开始。 我一直在尝试按照官方指南提供: https://developers.google.com/drive/android/get-started 以及另一个指南,我发现https://www.numetriclabz.com/integrate-google-drive-in-android-tutorial/,甚至下载源代码,只是更换我的API密钥,但与这两个指南我遇到了完全相同的问题。Google Drive Api无法连接/授权到谷歌帐户

每当我尝试测试运行应用程序,以查看是否应用程序被连接到驱动器,我得到在控制台下面的输出:

$ adb shell am start -n "app.googledrive/app.googledrive.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
Client not ready yet..Connected to process 2889 on device emulator-5554 
W/System: ClassLoader referenced unknown path: /data/app/app.googledrive-1/lib/x86 
I/InstantRun: Instant Run Runtime started. Android package is app.googledrive, real application class is null. 

       [ 01-16 12:33:01.211 1561: 1584 D/   ] 
       HostConnection::get() New Host Connection established 0x953a3740, tid 1584 
W/System: ClassLoader referenced unknown path: /data/app/app.googledrive-1/lib/x86 
I/GMPM: App measurement is starting up, version: 8487 
I/GMPM: To enable debug logging run: adb shell setprop log.tag.GMPM VERBOSE 
I/OpenGLRenderer: Initialized EGL, version 1.4 
D/OpenGLRenderer: Swap behavior 1 
E/EGL_emulation: tid 2930: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x94efd500, error=EGL_BAD_MATCH 
I/Google Drive Activity: GoogleApiClient connection failed: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{e061739: [email protected]}, message=null} 

另外,谷歌登录中弹出新增帐户对我来说,这意味着它连接到谷歌服务器,但不承认帐户/登录因为某种原因。我也尝试重新生成密钥库并将其重新添加到开发人员控制台并使用不受限制的密钥,但出现同样的问题。

我非常感谢有关如何解决此问题的任何帮助或建议,谢谢。

+1

尝试在设备上,它可能与模拟器登录 – avinash

+0

感谢@avinash的建议。我曾尝试直接在Android设备上运行它,但它仍然不允许我选择一个帐户并继续进行,因为每当我单击设备中的帐户时,android工作室中仍会出现以下消息: – user6709078

+0

'01- 17 13:35:13.375 9923-9923/app.googledrive D/AppTracker:应用事件:开始 01-17 13:35:13.413 9923-9923/app.googledrive我/ Google云端硬盘活动:GoogleApiClient连接失败: ConnectionResult {statusCode = SIGN_IN_REQUIRED,resolution = PendingIntent {a77a4d3:[email protected]},message = null} 01-17 13:35:13.429 9923-9923/app.googledrive D/AppTracker:App Event:stop 01-17 13:35:13.445 9923-9923/app.googledrive D/AbstractTracker:活动成功 01-17 13:35:13.463 9923-9923/app.googledrive D/AbstractTracker:事件成功 ' – user6709078

回答

0

这不是答案,但它会帮助你。

首先定义您将保存到哪个Google帐户。如果用户将使用他自己的帐户或一些集中帐户,整个辣酱玉米饼馅是完全不同的。

接下来你需要决定你想使用哪个API/SDK。假设您希望用户保存到自己的Google帐户,那么您可以选择使用REST API(使用或不使用Java SDK)或Android API。 REST API允许访问所有的驱动器功能,但只适用于手机处于联机状态并需要一点点争论才能获得授权。 Google Drive Android API(GDAA)提供了许多功能,但更易于工作,并具有允许离线访问的优势。

+0

感谢@pinoyyid对我来说似乎是这样的答案,我试图在我的应用程序中使用错误的API。我打算为我的应用程序使用一个集中帐户,用于存储和访问谷歌驱动器上的android手机的数据。我也不担心连接,因为手机也需要在线才能使用其他功能。 在这种情况下,我会尝试google更多关于REST API,我猜测这些凭证需要在应用程序中进行硬编码? – user6709078

+0

如果你想使用一个集中的帐户,那么是的,凭证需要存储在应用程序中。您可以选择使用凭据是密钥对的服务帐户,还是使用凭据是刷新令牌的常规帐户。请注意,您遇到的大多数示例代码都是针对您的应用访问用户自己的帐户的用例,因此需要处理身份验证和授权。 – pinoyyid

+0

我不知道我是否真的愚蠢或什么,但我一直在寻找过去几天的官方文档和其他线程试图找到一些关于设置REST API和后续处理的例子与服务帐户授权,但我似乎无法得到这个小而重要的部分工作。我知道这可能有点太多,但你没有碰到这两样东西的示例代码? (为Android设备设置驱动器REST API并使用服务帐户进行身份验证)我非常感谢您的帮助:)!!! – user6709078