2012-05-13 8 views
3

ノートを共有するACTION_SEND共有のインテントを実装する簡単なメモ帳アプリを作成しました。Googleドライブにテキスト/プレーンデータを共有しようとするAndroid

マイデータのMIMEタイプが「text/plain」でGoogleドライブ(以前はGoogleドキュメント)が選択されています.Googleドライブを選択すると「このアイテムはGoogleとしてアップロードできませんトースト(Toast)メッセージを介して「文書化」する。

私はこのように私の分け前の意図を作成:メール、メッセージング、TwitterやWordpressのような

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); 

アプリは、すべての意図をよく処理し、少なくともEXTRA_TEXTのコンテンツを共有するように見えます。

Googleドライブでノートを正常にアップロードするか、少なくともインテントをよりうまく処理できる方法があるのだろうか?

私はAndroidには新しいので、愚かな質問である場合は私の愚かさを許してください。 私はそれがまったく役に立ったら、最小SDKバージョン15に対して開発しています。

ここでエラーメッセージのスクリーン・グラブです:LogCatで Screen shot showing error message

私は再びエラーメッセージを発見:

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

あなたは正しいと思います。私はちょうどブラウザのアプリといくつかの他のテキストを共有しようとしたが、私はそこからも同じエラーが発生します。私は本当に尋ねる前にこれをチェックしておくべきだった。 私はタグでテキストをラップし、text/htmlとして共有します。これにより、問題が回避され、報告されます。 –

答えて

11

ちょうどあなたのアプリケーション内のファイルにテキストを保存して、意図して、そのファイルを共有するので、あなたがGoogleドキュメントにテキストを共有することはできませんが、ファイル(テキストファイルやその他)を共有することができ :

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のソフトウェア工場の誰かが将来それを修正することを願っています。

関連する問題