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

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

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

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

15.04.2013, 12:31. Просмотров 1243. Ответов 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
Посмотрите здесь:

Не получается сохранить файл на SD карту - Программирование Android
String FILENAME = "settings"; String string = "hello world!"; File sdDir = new...

Google Drive - Программирование Android
Пытаюсь запустить пример https://github.com/googledrive/android-demos/ Сказано, что для того чтобы запустить код нужно изменить...

Download file from Google Drive - Программирование Android
Проблема состоит в следующем: необходимо используя Google Drive API загрузить файл на устройство андроид или хотя бы считать его...

Работа с Google Drive Api - Программирование Android
Есть ли годные статьи или видео по работе с Google Диском? Задача написать стороннее приложение, которое сможет читать файлы из GD...

Google Maps/Drive API for Android - Программирование Android
Столкнулся с такой пробелмой, пару месяцев назад написал приложение , которое использует API Гугл которые озвучены в теме. Всё было...

Upload Google Drive API Retrofit 2 - Программирование Android
Вот интерфейс для Retrofit2: public interface OAuthServerIntf { .... @POST("upload/drive/v3/files?uploadType=multipart") ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
если что пароль при вводе не отображается.
то есть, мой вариант через сервис эккаунт довести до ума возможности не представляется в принципе?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 18:05     Не получается сохранить программно файл на Google Drive
Еще ссылки по теме:

Не получается выгрузить приложение на Google Play - Программирование Android
Здравствуйте. Написал приложение, зарегистрировался, оплатил, а окно для загрузки приложений в аккаунте так и не появилось. Что делать....

Как сохранить данные своего приложения через аккаунт Google? - Программирование Android
Моему приложению нужно сохранять данные своего пользователя в Интернете, мои многочисленные попытки через ftp хостинг не удались (не...

Не получается оплатить 25$ при активации аккаунта Google Play - Программирование Android
Cтолкнулся с проблемой - не получется оплатить 25$ для активации аккаунта в гугл плэй(( пытаюсь оплатить карточкой Visa Electron - пишет...

Сохранить текст в файл - Программирование Android
Помогите, пожалуйста, решить вопрос. Необходимо записать в файл строки из StringBuilder. Объекты: String FileName = new...

Сохранить файл в коренном каталоге - Программирование Android
Не удается создать файл на Path ="/storage/sdcard0/" + "txtfile.txt". Прошу помочь.

Не могу сохранить файл на карту - Программирование Android
Почему этот код сохраняет файл на внутреннем накопителе, вместо SD карты??? Environment.getExternalStorageDirectory().getPath() ссылается...


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

Или воспользуйтесь поиском по форуму:
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
Ответ Создать тему
Опции темы

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