Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
#1

Не получается сохранить программно файл на Google Drive - Android

15.04.2013, 12:31. Просмотров 1211. Ответов 5
Метки нет (Все метки)

добрый день, уважаемое сообщество.
пытаюсь маленько тренироваться в программировании под андроид и вот столкнулся с такой проблемой:
пытаюсь из своей программы сохранить файл LogFilePath на гугл драйв, по логам вроде все проходит без ошибок, создается сервис, копируется файл(якобы!!), выдает некую ссылку по getDownloadUrl(), но файла на GD НЕТУ!!!!. в чем проблема - не пойму. помогите, плиз. ниже - кусок кода, отвечающего за сие действо:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public static final String SERVICE_ACCOUNT_EMAIL = "M_EMAIL";
public static String keyFilePath = Environment.getDataDirectory()
+ "/data/moe_prilozhenie/files/";
public static String LogFilePath = Environment.getDataDirectory()
+ "/data/moe_prilozhenie/files/myfile.txt";
 
public static final String SERVICE_ACCOUNT_PKCS12_FILE_PATH = "my_privatekey.p12";
 
public static Drive getDriveService() throws GeneralSecurityException,
IOException, URISyntaxException {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(DriveScopes.DRIVE)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File(keyFilePath
+ SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setApplicationName("ua.moe_prilozhenie")
.setHttpRequestInitializer(credential).build();
 
Log.d("RRRRR",
"get service drive !" + service.getApplicationName()
+ " - " + service.getServicePath());
return service;
}
 
public static File UploadFileToGDisk(Drive service, String title,
String description, String parentId, String mimeType,
String filename) {
File body = new File();
body.setTitle(title);
body.setDescription(description);
body.setMimeType(mimeType);
 
body.setParents(null);
 
java.io.File fileContent = new java.io.File(filename);
FileContent mediaContent = new FileContent(mimeType, fileContent);
try {
File file = service.files().insert(body, mediaContent).execute();
 
Log.d("UploadFileToGDisk", "File ID: " + file.getId()+file.getDownloadUrl());
 
return file;
} catch (IOException e) {
Log.d("RRRRR","An error occured: " + e);
return null;
}
}
вызывается функция как:
Java
1
2
File fff = UploadFileToGDisk(getDriveService(), "My title","My description", "qwerty", "txt/csv",Gooogledisk.LogFilePath);
Log.d("RRRRR", "file uploaded!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"+fff.getModifiedDate().toString());
буду благодарен за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 12:31     Не получается сохранить программно файл на Google Drive
Посмотрите здесь:

Android Не получается сохранить файл на SD карту
Android Не получается оплатить 25$ при активации аккаунта Google Play
Android File Explorer в Eclipse (сохранить файл)
Android Не получается выгрузить приложение на Google Play
Android Не могу сохранить файл на карту
Создание экрана программно и через xml файл Android
Download file from Google Drive Android
Google Drive Android
Сохранить текст в файл Android
Android Google Maps/Drive API for Android
Как сохранить данные своего приложения через аккаунт Google? Android
Сохранить файл в коренном каталоге Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 13:13     Не получается сохранить программно файл на Google Drive #2
https://developers.google.com/drive/quickstart-android
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 15:21  [ТС]     Не получается сохранить программно файл на Google Drive #3
пробовал, читал... но, видимо, не хватает у меня еще навыков. с регистрацией через SHA1 - не понял как генерить собственно сам сертификат, посему решил что лучше и проще использовать service account - и хотел бы этот вариант и добить... самое непонятное именно в том, что вроде как все отрабатывает, не вываливаются exception, но результат - отсутствие файла на драйве (
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 16:06     Не получается сохранить программно файл на Google Drive #4
Для Windows консоли:
Java
1
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -list -v
или Win7 & 8
Java
1
keytool -exportcert -alias androiddebugkey -keystore С:\Users\user\.android\debug.keystore -list -v
WinXP
Java
1
keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\user\.android\debug.keystore" -list -v
если что пароль при вводе не отображается.
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 16:26  [ТС]     Не получается сохранить программно файл на Google Drive #5
Цитата Сообщение от c4sp3r Посмотреть сообщение
Для Windows консоли:
Java
1
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -list -v
или Win7 & 8
Java
1
keytool -exportcert -alias androiddebugkey -keystore С:\Users\user\.android\debug.keystore -list -v
WinXP
Java
1
keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\user\.android\debug.keystore" -list -v
если что пароль при вводе не отображается.
то есть, мой вариант через сервис эккаунт довести до ума возможности не представляется в принципе?
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 18:05     Не получается сохранить программно файл на Google Drive #6
wolfff33, я service account не пробовал использовать поэтому мне нечего сказать и твой пример я вообще не смотрел так как он не оформлен нормально.

Также при чтении я не заметил чтобы говорилось про возможность использования service account
Paste the SHA-1 fingerprint generated in Step 1 into the Signing certificate fingerprint.
Также их пример использует SHA-1 fingerprint
https://developers.google.com/drive/examples/android

и
Authorizing requests on Android differs from other authorization workflows because of the integration with Google Play services. Unlike other workflows, authorization on Android uses a SHA1 fingerprint and package name to identify your app instead of a client ID and client secret.

https://developers.google.com/drive/auth/android
Поэтому я не уверен насчет возможности использовать service account.

p.s. попробуй еще поискать или спросить на stackoverflow.
Yandex
Объявления
15.04.2013, 18:05     Не получается сохранить программно файл на Google Drive
Ответ Создать тему
Опции темы

Текущее время: 20:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru