0

Я пытаюсь создать приложение для Android, которое интегрирует api-устройство google и использует диск в качестве хранилища для хранения, однако я столкнулся с проблемой с ним начало. Я пытался отслеживать официальное руководство, доступное по адресу: https://developers.google.com/drive/android/get-started , а также другое руководство, которое я нашел https://www.numetriclabz.com/integrate-google-drive-in-android-tutorial/, и даже загружая исходный код и просто заменяя свой API-интерфейс, однако оба этих руководства я столкнулся с одной и той же проблемой.Google Drive Api не может подключиться/авторизироваться в учетной записи google

Всякий раз, когда я пытаюсь проверить запустить приложение, чтобы увидеть, если приложение подключается к приводу я получаю следующий вывод в консоли:

$ 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} 

Также Google Войти выскакивает добавить учетную запись для меня это означает, что он подключается к серверу google, но не распознает учетную запись/подпись по той или иной причине. Я также попытался восстановить хранилище ключей и добавить его снова в консоль разработчиков и используя неограниченный ключ, однако такая же проблема возникает.

Я был бы очень признателен за любую помощь или предложения относительно того, как решить эту проблему, спасибо.

+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 I/Google Активность диска: соединение GoogleApiClient не выполнено: ConnectionResult {statusCode = SIGN_IN_REQUIRED, разрешение = 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, у вас есть выбор между использованием API REST (с или без Java SDK) или Android API. API REST позволяет получить доступ ко всем функциям Диска, но работает только тогда, когда телефон подключен к сети и требует разрешения, чтобы получить разрешение. API Android от Google Диска (GDAA) предлагает подпрограмму функций, но легче работать и имеет преимущество в предоставлении автономного доступа.

+0

Спасибо @pinoyyid за ответ, который мне кажется, я пытался использовать неправильный API для моего приложения в этом случае. Я планирую использовать одну централизованную учетную запись для своего приложения, которая будет использоваться для хранения и доступа к данным с помощью телефона android на диске Google. Я также не беспокоюсь о связи, так как телефон должен быть подключен к другим функциям. Я попробую Google больше в этом случае об API REST, я предполагаю, что учетные данные должны быть жестко закодированы в приложении? – user6709078

+0

Если вы хотите использовать единую централизованную учетную запись, то да, учетные данные должны быть сохранены в приложении. У вас есть выбор использования учетной записи службы, в которой учетными данными является пара ключей или обычная учетная запись, где учетные данные являются токеном обновления. Имейте в виду, что большая часть примерного кода, с которым вы столкнетесь, предназначена для использования, когда ваше приложение будет получать доступ к собственной учетной записи пользователя и поэтому должно иметь дело с аутентификацией и авторизацией. – pinoyyid

+0

Я не знаю, действительно ли я тупой или что, но я пытался найти последние несколько дней официальную документацию и другие темы, пытаясь найти несколько примеров создания REST API, а затем продолжить с учетной записью службы для авторизации, но я, похоже, не смогу получить эту небольшую, но жизненно важную часть работы. Я знаю, что это может быть слишком много, чтобы просить, но у вас нет образца кода для этих двух вещей? (Настройка диска REST API для устройства Android и проверка подлинности с помощью учетной записи службы) Я очень ценю вашу помощь:) !!! – user6709078

 Смежные вопросы

  • Нет связанных вопросов^_^