2012-05-13 2 views
3

Я создал простое приложение для блокнота, которое реализует намерение акции ACTION_SEND делиться заметками.Android намерен обмениваться текстовыми/открытыми данными с Google Диском

Мои данные имеют тип mime «text/plain» и Google Drive (ранее Google Docs), предлагаемый как выбор на моем устройстве, когда я выбираю Google Drive, я получаю сообщение об ошибке «Этот элемент нельзя загрузить как Google Документ "через сообщение Toast.

Я создаю свою долю намерения, как это:

Intent share_intent = new Intent(android.content.Intent.ACTION_SEND); 

share_intent.setType("text/plain"); 
share_intent.putExtra(android.content.Intent.EXTRA_SUBJECT, name); 
share_intent.putExtra(android.content.Intent.EXTRA_TEXT, content); 

startActivity(share_intent); 

приложения, такие как почта, обмен сообщениями, Twitter и Wordpress все, кажется, чтобы справиться с пристальный хорошо и долю, по крайней мере содержание EXTRA_TEXT.

Интересно, может ли Google Drive успешно загрузить заметку или, по крайней мере, справиться с намерением?

Я новичок в Android, поэтому, пожалуйста, простите мою глупость, если это окажется глупым вопросом. Я развиваюсь против минимальной версии SDK версии 15, если это вообще помогает.

Вот экран-грейфер сообщения об ошибке: Screen shot showing error message

В LogCat я увидел сообщение об ошибке снова:

05-13 23:31:46.906: E/UploadSharedItemActivity(14594): This item cannot be uploaded as Google Document. 

Там также предупреждение, которое происходит перед сообщением об ошибке:

05-13 23:31:46.250: W/ND(14594): Could not load Finalizer in its own class loader. Loading Finalizer in the current class loader instead. As a result, you will not be able to garbage collect this class loader. To support reclaiming this class loader, either resolve the underlying issue, or move Google Collections to your system class path. 
05-13 23:31:46.250: W/ND(14594): java.io.FileNotFoundException: com/google/inject/internal/Finalizer.class 
05-13 23:31:46.250: W/ND(14594): at NE.a(FinalizableReferenceQueue.java:269) 
05-13 23:31:46.250: W/ND(14594): at NE.a(FinalizableReferenceQueue.java:253) 

Я не знаю, может ли это быть связано или нет.

Я могу сбросить весь LogCat здесь, если это поможет.

+0

Звучит как ошибка в приложении Google Диска. Ваш код кажется прекрасным, и если другие приложения обрабатывают его без проблем, вряд ли это будет проблемой на вашем конце. При этом вы всегда можете экспериментировать с другими форматами (например, обернуть вещь в некоторые теги и называть ее «text/html») и посмотреть, что произойдет. – CommonsWare

+0

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

ответ

11

Вы не можете разделить текст документа Google, но вы можете поделиться файл (текстовый файл или другой) Так, просто сохранить текст в файл внутри приложения и обмениваться этот файл с Intent:

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + your_file_path)); 
    startActivity(Intent.createChooser(intent, "")); 
+0

Это хорошее решение; это работает. Я добавил дополнительные значения EXTRA_SUBJECT и EXTRA_TEXT в намерение, чтобы другие приложения, такие как обмен сообщениями, также отвечали на намерение. Единственная проблема заключается в том, что клиент электронной почты включает в себя файл как вложение, а также заполняет содержимое электронной почты EXTRA_TEXT и строку темы из EXTRA_SUBJECT. –

0

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

Я сообщил об этом через функцию «Отправить отзыв» приложения. Надеюсь, что кто-то на заводе программного обеспечения Google исправит его в будущем.