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

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

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

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

15.04.2013, 12:31. Просмотров 1271. Ответов 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());
буду благодарен за помощь
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 12:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается сохранить программно файл на Google Drive (Программирование Android):

Не получается сохранить файл на 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 #2
https://developers.google.com/drive/quickstart-android
0
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 15:21  [ТС] #3
пробовал, читал... но, видимо, не хватает у меня еще навыков. с регистрацией через SHA1 - не понял как генерить собственно сам сертификат, посему решил что лучше и проще использовать service account - и хотел бы этот вариант и добить... самое непонятное именно в том, что вроде как все отрабатывает, не вываливаются exception, но результат - отсутствие файла на драйве (
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 16:06 #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
если что пароль при вводе не отображается.
0
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 16:26  [ТС] #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
если что пароль при вводе не отображается.
то есть, мой вариант через сервис эккаунт довести до ума возможности не представляется в принципе?
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 18:05 #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.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 18:05
Привет! Вот еще темы с ответами:

Скачать и загрузить файл на Google Drive - C++
Как скачать и загрузить файл на Google Drive ,программно в c++ под windows? искал искал а гугл молчит((

Как программно сохранить файл не на диск, а на FTP? - Visual Basic
Есть необходимость формировать клиенту файлы. Можно ли их как-то на FTP закидывать с логином и паролем?

Не получается сохранить файл командой fopen - C++
printf("1. Сохранить таблицу в файл. \n"); printf("2. Вернуться в главное меню\n"); scanf_s("%d", &k); if (k == 1) { FILE...

Не получается сохранить файл с данными из dataGridView - C#
Пытаюсь сохранить данные из dataGridView в xml при закрытии программы но ничего не выходит вот код public partial class Form1 : Form ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.04.2013, 18:05
Ответ Создать тему
Опции темы

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